doT.js详细解析

doT.js详细解析
 
doT.js特点是快,小,无依赖其他插件。

官网: http://olado.github.io
 
使用方法:
   
    1){{= }} for interpolation
   
    2){{ }}   for evaluation
   
    3){{~ }}  for array iteration
 
    4){{? }}  for conditionals
 
    5){{! }}  for interpolation with encoding
 
    6){{# }}  for compile-time evaluation/includes and partials
 
    7){{## #}}    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));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值