zoukankan      html  css  js  c++  java
  • doT.js使用介绍

    doT.js特点是快,小,无依赖其他插件,压缩版仅有4K大小。

    doT.js详细使用介绍

    使用方法:

    1

    2

    3

    4

    5

    6

    7

    {{ }} 模板   开始标记  结束标记

    {{= }} 赋值

    {{~ }} 循环

    {{? }} 判断

    {{! }} for interpolation with encoding

    {{# }} for compile-time evaluation/includes and partials

    {{## #}} for compile-time defines

    调用方式:

    1

    2

    var tmpText = doT.template(模板);

    tmpText(数据源);

     

    例子一:

    1、for interpolation 赋值

    格式:

    1

    {{= }}

    数据源:

    1

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

    区域:

    1

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

    模板:

    1

    2

    3

    4

    <script id="interpolationtmpl" type="text/x-dot-template">

        <div>Hi {{=it.name}}!</div>

        <div>{{=it.age || ''}}</div>

    </script>

    调用方式:

    1

    2

    3

    var dataInter = {"name":"Jake","age":31};

    var interText = doT.template($("#interpolationtmpl").text());

    $("#interpolation").html(interText(dataInter));

    例子二:

    2、for evaluation for in 循环

    格式:

    1

    2

    3

    {{ for var key in data { }} 

    {{= key }} 

    {{ } }}

    数据源:

    1

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

    区域:

    1

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

    模板:

    1

    2

    3

    4

    5

    <script id="evaluationtmpl" type="text/x-dot-template">

        {{ for(var prop in it) { }}

            <div>KEY:{{= prop }}---VALUE:{{= it[prop] }}</div>

        {{ } }}

    </script>

    调用方式:

    1

    2

    3

    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 数组

    格式:

    1

    2

    3

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

        ...

    {{~}}

    数据源:

    1

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

    区域:

    1

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

    模板:

    1

    2

    3

    4

    5

    <script id="arraystmpl" type="text/x-dot-template">

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

            <div>{{= index+1 }}{{= value }}!</div>

        {{~}}

    </script>

    调用方式:

    1

    2

    3

    var dataArr = {"array":["banana","apple","orange"]};

    var arrText = doT.template($("#arraystmpl").text());

    $("#arrays").html(arrText(dataArr));

    例子四:

    4、{{? }} for conditionals 条件

    格式:

    1

    2

    3

    {{? }} if

    {{?? }} else if

    {{??}} else

    数据源:

    1

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

    区域:

    1

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

    模板:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    <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>

    调用方式:

    1

    2

    3

    var dataEncode = {"uri":"http://jq22.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

    数据源:

    1

    {"uri":"http://jq22.com/?keywords=Yoga"}

    格式:

    1

    {{!it.uri}}

    区域:

    1

    <div id="encode"></div>

    模板:

    1

    2

    3

    <script id="encodetmpl" type="text/x-dot-template">

        Visit {{!it.uri}} {{!it.html}}

    </script>

    调用方式:

    1

    2

    3

    var dataEncode = {"uri":"http://jq22.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

    数据源:

    1

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

    区域:

    1

    <div id="part"></div>

    模板:

    1

    2

    3

    4

    5

    6

    7

    <script id="parttmpl" type="text/x-dot-template">

        {{##def.snippet:

        <div>{{=it.name}}</div>{{#def.joke}}

        #}}

        {{#def.snippet}}

        {{=it.html}}

    </script>

    调用方式:

    1

    2

    3

    4

    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));

  • 相关阅读:
    Coursera 算法二 week 5 BurrowsWheeler
    pta 编程题7 List Leaves
    pta 编程题6 树的同构
    pta编程题5 Pop Sequence
    pat乙级1067
    pat乙级1060
    pat乙级1059
    1.ActionBar
    安卓开发必须收藏的网站
    genymotion常见问题解答
  • 原文地址:https://www.cnblogs.com/inkwhite/p/9099025.html
Copyright © 2011-2022 走看看