template 的使用

 

插件介紹:template 是一個高性能的JavaScript模板引擎。html

 

插件特性:瀏覽器

  一、性能卓越,執行速度快(mustache 與 tmpl 的20多倍);安全

  二、支持運行時調試,可精準定位異常模板所在語句;函數

  三、對 NodeJS Express 有很好的支持;
性能

  四、安全,默認對輸出進行轉義;編碼

  五、可在瀏覽器端實現按路徑加載模板;spa

  六、支持預編譯,可將模板轉換成爲很是精簡的 js 文件;
插件

  七、模板語句簡介,無需前綴引用數據,擁有簡潔版本和原生版本可供選擇;調試

  八、支持全部流行的瀏覽器;code

 

開始使用(有兩種語法, 此文章介紹的是簡介語法)

  1) artTemplate 模板必須使用一個type="text/html" 的 script 標籤用來存放模板(標籤中寫的是HTML);

 <script type="text/html"></script>

 

  2) 開始編寫本身的模板

 <script id="model" type="text/html">
     <h1>{{title}}</h1>
     <ul>
         {{each list as value index}}
             <li>{{index+1}}、{{value}}</li>
         {{/each}}
     </ul>
 </script>

 

  3) 使用數據渲染模板

 var data ={
     title: '熱愛的遊戲',
     list: ['LOL','王者農藥','夢三國','魔獸爭霸','其它']
 };

var html = template('model',data);
 document.getElementById('box').innerHTML = html

 

到了這一步,打開頁面就能夠看到效果了。

 

artTemplate 簡潔語法介紹:

1) 使用以前須要引用簡潔語法的版本,例如:

 <script src="template.js"></script>

2) 表達式:

  {{ 和 }} 符號包裹起來的語句則爲模板的表達式。

3) 輸出表達式:

  對內容編碼輸出: {{ title }}

  對內容不編碼輸出: {{ #title }}

  區別:

 // 假若有這樣一段數據,title 內出現了標籤 
var
data ={ title: '<i>熱愛的</i>遊戲', list: ['LOL','王者農藥','夢三國','魔獸爭霸','其它'] };

{{ title }} // 顯示內容爲:<i>熱愛的</i>遊戲

{{ #title }} // 顯示內容爲:熱愛的遊戲

 

4) 條件表達式

<script id="model" type="text/html">
    <h1>{{ title }}</h1>
    <ul>
     // 判斷條件自定 {{if list.length>0}} {{each list as value index}} <li>{{index+1}}、{{value}}</li> {{/each}} {{else}} <p>沒有內容</p> {{/if}} </ul> </script>

 

5) 遍歷表達式

{{each list as value index}}
    <li>{{index+1}}、{{value}}</li>
{{/each}}

// 也能夠被簡寫爲
{{each list}}
    <li>{{$index+1}}、{{$value}}</li>
{{/each}}

 

artTemplate 方法:

  template 函數中有兩個參數值。

  第一個參數表示須要編譯的模板(填寫的是模板的 ID)

  第二個參數是須要向模板填充的數據,返回值是編譯以後的HTML字符串;

  // 目前瞭解到此處

 

artTemplate 默認配置

 

示例:

<script id="people" type="text/html">
    <h1>{{title}}</h1>
    <ul>
        {{if peos.length>0}}
            {{each peos as p index}}
                <li>
                    {{index+1}}、
                    選手姓名:<span>{{p.name}</span>&#x3000;
                    年齡:<span>{{p.age}}</span>
                </li>
            {{/each}}
        {{else}}
            <p>沒有內容</p>
        {{/if}}
    </ul>
</script>

<script>
    var data2 ={
        title: '喜歡的職業選手',
        peos: [
            {
                name: "<b>Uzi</b>",
                age: 20
            },
            {
                name: 'Clearlove7',
                age: 20
            },
            {
                name: 'Korol',
                age: 21
            }
        ]
    }
    // 默認爲true 不編譯 輸出爲 <b>Uzi</b>
  // false 編譯 是否編碼輸出 HTML 字符
template.config("escape",false); var html2 = template('people',data2); document.getElementById('box2').innerHTML = html2; </script>
相關文章
相關標籤/搜索