在使用art-template.js出现以下的场景:html
好比,循环体外面定义变量,而且在循环体内改变变量的值 但我又不想让其显示出来。
那咱们一步一步的来实现以上的场景 看看会出现什么神奇的地方。web
1.首先引入template-web.jsspa
2.编写模板文件code
<script id="template" type="text/html"> // 1.定义变量flag = false <br/> {{set flag = false}} // 2.循环 <br/> {{each target list i}} {{each target list2 j}} {{if(i==j)}} // 3.改变flag的值 <br/> // 方案1(扑街):{{flag = true}} <br/> // 直接在模板中这样写“flag = true”,这样最终的值到是改变了 , // 可是它也会在渲染事后显示在页面上。而咱们只是想改变值而不想让其显示出来 // // 方案二(扑街): {{set flag = true}} // 个人理解是循环的做用域set了一个局部变量 , // 跟在循环体外面定义的flag 是两个不一样的变量 // 因此这个方式虽然没有让其显示,可是却没有改变循环体定义的flag的值 没有起做用 // 通过各类查询资料 彷佛都没有找到解决方案,本打算就此放弃。 // 经过各类尝试,并大胆推测:此模板是否支持“链式赋值”。本身也就尝试了一下。 // 成功了,不得不感叹art-template模板的强大,还有狠多有待挖掘。 // 记录一下,以避免走弯路。 // 方案三(彩蛋):{{set flag1 = flag = true}} {{set flag1 = flag = true}} // 关键一步 修改flag的值 而没有输出显示 {{/if}} {{/each}} {{/each}} // 4. 输出flag值 {{flag}} </script>
结果显示:htm
// 1.定义变量flag = false // 2.循环 // 4. 输出flag值 true
已此记录, 方便交流blog