在进行前端网页开发中采用腾讯开源的前端模板引擎arttemplate时,有很多隐藏的点在提供的开发文档中时没有提及的,需要在使用过程中慢慢摸索尝试才能解决:
- 变量赋值作用域的问题:
在通过{{set para = 'a'}}这个代码创建一个para变量时,其作用域非常有限,不能在循环{{each}} {{set para = 'b'}} {{/each}}作用块中通过{{set para='b'}}生效,输出的para的值依然是 para = ‘a’。
{{set para = 'a'}}
{{each list as value}}
{{set para='b'}}
{{/each}}
{{para}}
以上脚本输出结果依然为 a,不是b,这就是因为在each代码块中通过{{set para='b'}}赋值后,相当于创建一个新的变量(有别于each作用域外)。
解决办法有两种:
(1)通过在作用域中采用{{ para = 'b'}}的方式给变量赋值,但是这个方法有缺陷会将{{para = 'b'}}作为值输出到页面中
{{set para = 'a'}}
{{each list as value}}
{{para='b'}}
{{/each}}
{{para}}
输出结果:
b b b...
b
(2)通过{{set para1 = para = 'b'}}的方式给变量赋值,这种方式能够正确输出结果
{{set para = 'a'}}
{{each list as value}}
{{set para1 = para='b'}}
{{/each}}
{{para}}
输出结果为:
b