doT.js的使用


引言

doT.js可以更好的在html端使用json數據。

{{ }}     for evaluation 模板標記符
{{= }}    for interpolation 輸出顯示,默認變量名叫it
{{! }}    for interpolation with encoding 編碼后輸出顯示
{{? }}    for conditionals 條件分支,if條件的簡寫
{{~ }}    for array iteration 遍歷數組

使用

引入js

    <script type="text/javascript" src="../script/doT.min.js"></script>
    <!-- jquery 移動端替代品 -->
    <script type="text/javascript" src="../script/zepto.min.js"></script>
    <!--<script type="text/javascript" src="../script/jquery.min.js"></script>-->

功能點

1.for interpolation 賦值

格式:

{{= }}

數據源:

{"name":"Jake","age":31}

區域:

<div id="interpolation"></div>

模板:

<script id="interpolationtmpl" type="text/x-dot-template">
<div>Hi {{=it.name}}!</div>
<div>{{=it.age || ''}}</div>
</script>

調用方式:

var dataInter = {"name":"Jake","age":31};
var interText = doT.template($("#interpolationtmpl").text());
$("#interpolation").html(interText(dataInter));

2.for evaluation for in 循環

格式:

{{ for var key in data { }} 
{{= key }} 
{{ } }}

數據源:


{"name":"Jake","age":31,"interests":["basketball","hockey","photography"],"contact":{"email":"jake@xyz.com","phone":"999999999"}}

區域:

<div id="evaluation"></div>

模板:

<script id="evaluationtmpl" type="text/x-dot-template">
{{ for(var prop in it) { }}
<div>KEY:{{= prop }}---VALUE:{{= it[prop] }}</div>
{{ } }}
</script>

調用方式:

var dataEval = {"name":"Jake","age":31,"interests":["basketball","hockey","photography"],"contact":{"email":"jake@xyz.com","phone":"999999999"}};
var evalText = doT.template($("#evaluationtmpl").text());
$("#evaluation").html(evalText(dataEval));

3.for array iteration 數組

格式:

{{~data.array :value:index }}
...
{{~}}

數據源:

{"array":["banana","apple","orange"]}

區域:

<div id="arrays"></div>

模板:

<script id="arraystmpl" type="text/x-dot-template">
{{~it.array:value:index}}
<div>{{= index+1 }}{{= value }}!</div>
{{~}}
</script>

調用方式:

var dataArr = {"array":["banana","apple","orange"]};
var arrText = doT.template($("#arraystmpl").text());
$("#arrays").html(arrText(dataArr));

4.for conditionals 條件

格式:

{{? }} if
{{?? }} else if
{{??}} else

數據源:

{"name":"Jake","age":31}

區域:

<div id="condition"></div>

模板:

<script id="conditionstmpl" type="text/x-dot-template">
{{? it.name }}
<div>Oh, I love your name, {{=it.name}}!</div>
{{?? !it.age === 0}}
<div>Guess nobody named you yet!</div>
{{??}}
You are {{=it.age}} and still dont have a name?
{{?}}
</script>

調用方式:

var dataCondition = {"age":31};
var conText = doT.template($("#conditionstmpl").text());
$("#condition").html(conText(dataCondition));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM