JavaScript模板引擎 art-template.js 的使用

首先給個(gè)art-template.js中文文檔

一、基本使用

1、引入模板引擎(版本為4.13.2)
<script src="https://unpkg.com/art-template@4.13.2/lib/template-web.js"></script>

2、編寫(xiě)模板和渲染的容器
<div id="test-wrapper"></div>
<script id="test-template" type="text/html">
    <h1>{{title}}</h1>
</script>

3、獲取模板并往模板里插入數(shù)據(jù)
var data = {
    title: "hello world",
    desc: "<p>這是一段描述</p>"
};
var html = template("test-template",data);

4、把模板渲染到頁(yè)面
document.getElementById('test-wrapper').innerHTML = html;

或者用jQuery:

$('#test-wrapper').html(html)

完成代碼如下圖:


template1.png

二、輸出

標(biāo)準(zhǔn)語(yǔ)法 {{ 變量名 }}

{{title}}

原始語(yǔ)法 <%= 變量名 %>

<%= title %>

標(biāo)準(zhǔn)語(yǔ)法支持基本模板語(yǔ)法以及基本 JavaScript 表達(dá)式;原始語(yǔ)法支持任意 JavaScript 語(yǔ)句,這和 EJS 一樣。

三、原文輸出

標(biāo)準(zhǔn)語(yǔ)法 {{@ 變量名 }}

{{@ title }}

原始語(yǔ)法 <%- 變量名 %>

<%- title %>

輸出與原文輸出的區(qū)別在于:原文輸出語(yǔ)句不會(huì)對(duì) HTML 內(nèi)容進(jìn)行轉(zhuǎn)義處理,例如:

圖片.png

渲染結(jié)果如下圖:

結(jié)果很明顯,原文輸出將標(biāo)簽解析出來(lái)了,而輸出將標(biāo)簽進(jìn)行轉(zhuǎn)義了。原文輸出可能存在安全風(fēng)險(xiǎn),請(qǐng)謹(jǐn)慎使用。

四、循環(huán)

循環(huán)可以是Arrray或者Object,語(yǔ)法為:

{{each target}}
    {{$index}} {{$value}}
{{/each}}

例如: [圖片上傳失敗...(image-149333-1599533198402)]

渲染結(jié)果如下圖: [圖片上傳失敗...(image-33b951-1599533198402)]

這里的$index$value是默認(rèn)的,也可以自定義:

{{each target val key}}
    {{key}} {{val}}
{{/each}}

五、條件

語(yǔ)法為:

{{if value}} ... {{/if}}
{{if v1}} ... {{else if v2}} ... {{/if}}

六、過(guò)濾器(自定義函數(shù))

template.defaults.imports.show = function(num,str){
    console.log(num, str)
    return num*666
}

使用:

{{num | show}}

或者:

{{ show(num,'hello') }}

第一種方法只能傳入一個(gè)參數(shù)即 '|' 前面這個(gè)參數(shù),第二種沒(méi)有限制,跟普通函數(shù)一樣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容