新航路师徒学院

 找回密码
 立即注册
搜索
查看: 352|回复: 0

dot.js详细介绍

[复制链接]

1

主题

2

帖子

15

积分

版主

Rank: 7Rank: 7Rank: 7

积分
15
发表于 2016-9-2 16:30:30 | 显示全部楼层 |阅读模式
使用方法:
{{= }} for interpolation  //赋值
{{ }}   for evaluation   //循环
{{~ }}  for array iteration  //数组
{{? }}  for conditionals      //条件
{{! }}  for interpolation with encoding
{{# }}  for compile-time evaluation/includes and partials
{{## #}}    for compile-time defines


调用方式:
var tmpText = doT.template(模板);
tmpText(数据源);


例子一:
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 dataEncode = {"uri":"http://bebedo.com/?keywords=Yoga","html":"<div style='background: #f00; height: 30px; line-height: 30px;'>html元素</div>"};
            var EncodeText = doT.template($("#encodetmpl").text());
            $("#encode").html(EncodeText(dataEncode));



例子五:
5、for interpolation with encoding
        数据源:{"uri":"http://bebedo.com/?keywords=Yoga"}
格式:
{{!it.uri}}

区域:<div id="encode"></div>

模板:
    <script id="encodetmpl" type="text/x-dot-template">
        Visit {{!it.uri}} {{!it.html}}
    </script>
调用方式:
var dataEncode = {"uri":"http://bebedo.com/?keywords=Yoga","html":"<div style='background: #f00; height: 30px; line-height: 30px;'>html元素</div>"};
            var EncodeText = doT.template($("#encodetmpl").text());
            $("#encode").html(EncodeText(dataEncode));


例子六:6、{{# }} for compile-time evaluation/includes and partials
           {{## #}}    for compile-time defines
           数据源:{"name":"Jake","age":31}

区域:<div id="part"></div>
           模板:
<script id="parttmpl" type="text/x-dot-template">
        {{##def.snippet:
        <div>{{=it.name}}</div>{{#def.joke}}
        #}}
        {{#def.snippet}}
        {{=it.html}}
    </script>

调用方式:
var dataPart = {"name":"Jake","age":31,"html":"<div style='background: #f00; height: 30px; line-height: 30px;'>html元素</div>"};
            var defPart = {"joke":"<div>{{=it.name}} who?</div>"};
            var partText = doT.template($("#parttmpl").text(), undefined, defPart);
            $("#part").html(partText(dataPart));

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

新航路师徒学院 ( 京ICP备16035622号

GMT+8, 2018-9-25 23:25 , Processed in 0.126201 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表