首頁 >web前端 >js教程 >javascript的模板引擎art-template常用操作介紹

javascript的模板引擎art-template常用操作介紹

不言
不言轉載
2018-10-27 15:31:373412瀏覽

這篇文章帶給大家的內容是關於javascript的模板引擎art-template常用操作介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

art-template
javascript 範本引擎,官網:https://github.com/aui/art-template

分為原生語法和簡潔語法,本文主要是講簡潔語法

基礎資料渲染
輸出HTML
流程控制
遍歷
呼叫自訂函數方法
子範本引入
基礎數據渲染
一、引入art-template.js檔案

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

二、編寫HTML模板

<script id="test" type="text/html">
    <h1>{{title}}</h1>
</script>

三、向模板插入數據,並輸出到頁面

var data = {
    title:"hello world"
};
var html = template("test",data);
document.getElementById(&#39;content&#39;).innerHTML = html;

輸出HTML

<script id="test" type="text/html">
    <h1>{{title}}</h1>
</script>

//注意:{{title}}這是對內容編碼輸出,應該寫成{{#title}}這是對內容不編碼輸出

<script id="test" type="text/html">
    <h1>{{#title}}</h1>
</script>

var data = {
    title:"<p>hello world</p>"
};
var html = template("test",data);
document.getElementById(&#39;content&#39;).innerHTML = html;

流程控制語句(if else)

{{if value}}
...
{{else if value}}
...
{{else}}
...
{{/if}}

art-template裡面的流程控制就相對其他模板來說強大很多了,直接看例子吧

<script id="test" type="text/html">
    <div>
        {{if bok==22}}
        <h1>线上</h1>
        {{else if bok==33}}
        <h2>隐藏</h2>
        {{else}}
        <h3>走这里</h3>
        {{/if}}
    </div>
</script>
<script>
    var data = {
        "bok":22
    };
    var html = template(&#39;test&#39;,data);
    document.getElementById("app").innerHTML = html;
</script>

嵌套的寫法

<script id="test" type="text/html">
    <div>
        {{if bok}}
            {{if list.length>=0}}
                {{each list}}
                    <p>{{$index}}:{{$value}}</p>
                {{/each}}
            {{else}}
                <p>没有数据</p>
            {{/if}}
        {{/if}}
    </div>
</script>
<script>
    var data = {
        "bok":true,
        list:["a","b","c"]
    };
    var html = template(&#39;test&#39;,data);
    document.getElementById("app").innerHTML = html;
</script>

循環遍歷語句

{{each name}}
索引:{{$index}}
值:{{$value}}
{{/each}}
<script id="test" type="text/html">
<div>
    <ul>
        {{if c==100}}
            <ul>
                {{each person}}
                    <li>
                        编号:{{$index+1}}--姓名:{{$value.name}}--年龄:{{$value.age}}
                    </li>
                {{/each}}
            </ul>
        {{/if}}
    </ul>
</div>
</script>

<script>
    var data = {
        c:100,
        person:[
            {name:"jack",age:18},
            {name:"tom",age:19},
            {name:"jerry",age:20},
            {name:"kid",age:21},
            {name:"jade",age:22}
        ]
    };
    var html = template("test",data);
    document.getElementById("content").innerHTML = html;
</script>

呼叫自訂方法
透過template.helper(name,fnCallBack)註冊方法
可以直接在{{}}呼叫

<script id="test" type="text/html">
<div>
    {{if c==100}}
        <ul>
            {{each person}}
                <li>姓名:{{$value.name}}--性别:{{show($value.sex)}}</li>
            {{/each}}
        </ul>

    {{/if}}
</div>
</script>
<script>
    var data = {
        c:100,
        person:[
            {name:"jack",age:18,sex:1},
            {name:"tom",age:19,sex:0},
            {name:"jerry",age:20,sex:0},
            {name:"kid",age:21,sex:1},
            {name:"jade",age:22,sex:0}
        ]
    };
    //自定义函数
    template.helper("show",function(sex){
        console.log(sex);//同样可以打印日志到控制台
        if(sex==0){
            return "男"
        }else if(sex==1){
            return "女"
        }
    });
    var html = template("test",data);
    document.getElementById("app").innerHTML = html;
</script>

呼叫子模板

{{include 'main'}} 引入子模板,資料預設為共享
{{include 'main' a}} a為制定數據,但是同樣必須是父級數據,可以看看下面的例子,如果不注入的a的話,引入的子模板是接受不到數據的


<script src="template-debug.js"></script> <script> var data = { person:[ {name:"jack",age:18}, {name:"tom",age:19}, {name:"jerry",age:20}, {name:"kid",age:21}, {name:"jade",age:22} ], a:{ list:[&#39;文艺&#39;, &#39;博客&#39;, &#39;摄影&#39;, &#39;电影&#39;, &#39;民谣&#39;, &#39;旅行&#39;, &#39;吉他&#39;] } }; var html = template("test",data); document.getElementById("app").innerHTML=html; </script>

以上是javascript的模板引擎art-template常用操作介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除