在使用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