1. 程式人生 > >art-template 模板定義變數並更改變數值 不讓其輸出顯示

art-template 模板定義變數並更改變數值 不讓其輸出顯示

在使用art-template.js出現如下的場景:
比如,迴圈體外面定義變數,並且在迴圈體內改變變數的值 但我又不想讓其顯示出來。

那我們一步一步的來實現以上的場景 看看會出現什麼神奇的地方。

1.首先引入template-web.js

2.編寫模板檔案

 <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}}   // 關鍵一步
    {{/if}}
{{/each}}
{{/each}}

// 4. 輸出flag值 
{{flag}}
</script>

結果顯示:
// 1.定義變數flag = false
// 2.迴圈
// 4. 輸出flag值
true

已此記錄, 方便交流