双大括号语法
在组件交互章节中讲解到通过使用{{}}
语法来读取内置交互变量,需要特别注意:在PageNow中,此语法仅在以下列出的几种场景中使用:
- 当组件使用API接口数据源时,在API接口地址、API接口的Headers请求头,API接口POST请求参数体中可以使用
- 当组件使用数据库数据源时,编辑SQL语句时可以使用
- 页面轮播组件的页面地址中可以使用
后续可能还会逐步添加更多的适用场景!
# 使用中下划线配置默认值
{{}}
语法主要用于特定场景下读取内置交互变量,在纯配置化方式实现内置数据交互流章节中,提到通过使用|
来为读取内置交互变量时设置默认值,其语法解构如下所示:
{{内置交互变量|默认值}}
或
{{内置交互变量|js:一段计算取值的JS脚本}}
值得注意的是:其中设置的默认值通过PageNow内置的解析器解析后,均转换为字符串类型
提示
PageNow于20220506版本更新后,已支持在默认值中使用js:
语法运行JavaScript代码
# js:语法
一般情况下,通过{{}}
语法都是为了读取内置交互变量,但某些情况下,我们希望在编辑API接口地址时,或编辑SQL语句时,去运行一段JS代码,读取一些全局变量或做一些简单的逻辑运算构建变量数据时,就可以使用js:
语法实现
例如以下API接口地址:
http://localhost:8090/test/getText?str={{js:window.globalStr}}
此接口地址中,使用了js:
语法运行一段JS代码,代码中读取全局变量globalStr赋值给str参数。
虽说{{}}
语法主要是为了读取内置交互变量,但可以看出,上面的接口地址示例中,和读取内置交互变量没有任何关系,这就是{{}}
语法的特别之处,它可以解决我们在编辑API接口地址,或SQL语句时,提供更多的可扩展性。
注意
目前虽说js:
语法能够运行JS代码块,但是并不是任何代码均可运行,必须确保这段JS脚本是可取值的,js:
语法中无法运行类似一个if语句,或者一段复杂的JS脚本,而此脚本没有任何返回值。
什么是可取值的?
例如:
- 读取全局变量
- 读取当前页面URL参数
- 运行一段JS运算,例如1+1、"hello"+"world"