doT js模板入门

简介: <div class="markdown_views"><p>doT.js github地址: <br><a href="http://olado.github.io/doT/">doT.js 官方网站 </a> <br><strong><em>实例1:简单</em></strong></p><pre class="prettyprint"><code class="

doT.js github地址:
doT.js 官方网站
实例1:简单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="../../doT.js"></script>
    <script type="text/javascript" src="http://hbjltv.com/static/js/jquery-1.11.1.js"></script>
</head>
<body>
<div id="interpolationtmpl">
    <div>Hi {{=it.name}}!</div>
    <div>{{=it.age || ''}}</div>
</div>
<hr/>
<div id="interpolation"></div>
<script type="text/javascript">
    var dataInter = {"name": "Jake", "age": 31};
    var interText = doT.template($("#interpolationtmpl").html());
    $("#interpolation").html(interText(dataInter));
</script>
</body>
</html>

运行结果:
运行结果

实例二:条件判断

<body>
<div id="conditionstmpl">
    {{? !it.name }}
    <div> 你还没有名字</div>
    {{?? }}
    <div>Oh, I love your name, {{=it.name}}!</div>
    {{?}}
</div>
<hr/>
<div id="condition"></div>
<script type="text/javascript">
    var dataEncode = {"name": "黄威", "age": 31};
    var interText = doT.template($("#conditionstmpl").html());
    $("#condition").html(interText(dataEncode));
</script>
</body>

运行结果:
运行结果

if条件判断 还有第二种写法:

<body>
<div id="conditionstmpl">
    {{ if(!it.name){ }}
    <div> 你还没有名字</div>
    {{ } else { }}
    <div>Oh, I love your name, {{=it.name}}!</div>
    {{ }  }}
</div>
<hr/>
<div id="condition"></div>
<script type="text/javascript">
    var dataEncode = {"name": "", "age": 31};
    var interText = doT.template($("#conditionstmpl").html());
    $("#condition").html(interText(dataEncode));
</script>
</body>

实例三:循环+条件判断

<body>
<div id="evaluationtmpl">
    {{ for(var prop in it) { }}
        {{? typeof it[prop]=='object' }}
            <div style="font-weight: bold;" >KEY:{{= prop }}---VALUE:</div>
            {{ for(var prop2 in it[prop]) { }}
                <div style="margin-left: 20px;" >key:{{= prop2 }}---value:{{= it[prop][prop2] }}</div>
            {{ } }}
        {{?? }}
            <div>KEY:{{= prop }}---VALUE:{{= it[prop] }}</div>
        {{?}}

    {{ } }}
</div>
<hr/>
<div id="evaluation"></div>
<script type="text/javascript">
    var dataEval = {
        "name": "Jake",
        "age": 31,
        "interests": ["basketball", "hockey", "photography"],
        "contact": {"email": "jake@xyz.com", "phone": "999999999"}
    };
    var evalText = doT.template($("#evaluationtmpl").html());
    $("#evaluation").html(evalText(dataEval));
</script>
</body>

运行结果:
运行结果

普通循环(不是foreach)

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

{{ for(var prop in it){  }}
<table>
    {{? typeof it[prop]['appName']=='object' }}
        <tr  > <td rowspan="{{=it[prop]['appName'].length}}" >{{=it[prop]['cusName']}}</td>
        <td  >{{=it[prop]['appName'][0]}}</td>
        </tr>
        {{ for(var prop2=1;prop2 <it[prop]['appName'].length; prop2++ ){ }}
            <tr><td  >{{=it[prop]['appName'][prop2]}}</td></tr>
        {{ } }}
    {{?? }}
        <tr><td >{{=it[prop]['cusName']}}</td><td >{{=it[prop]['appName']}}</td></tr>
    {{?}}
</table>
{{ } }}

</script>

源码下载地址:
doT 源码及实例

说明:
1,{{? typeof it[prop]==’object’ }} 表示条件判断,结束标签是{{?}}
2, {{?? }}是条件判断的else
3,{{ 和{{? 中均可以使用原生的js语法,如for,typeof 等
4,模板并不是一定要放在script标签中,也可以放在隐藏的div标签中

参考:doT js模板入门 2

作者: 黄威
博客地址:
CSDN博客主页
itEye博客主页

相关文章
|
JavaScript 前端开发
|
前端开发 JavaScript
|
JavaScript 前端开发
|
JavaScript
doT js模板入门 3
<div class="markdown_views"> <p><strong>for 循环前判断循环的list是否为空</strong></p> <pre class="prettyprint"><code class=" hljs handlebars"><span class="xml"><span class="hljs-tag">&lt;<span class="h
1400 0
|
JavaScript 前端开发 Java
doT js模板入门 2
<div class="markdown_views"> <p>doT js 使用{{}} 非常类似于JSP,所以用起来感觉很亲切,很顺手 <br><strong>{{</strong>–&gt;<strong>&lt;%</strong> <br><strong>}}</strong>–&gt;<strong>%&gt;</strong> <br> 例如:</p> <pre
1214 0
|
2月前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
36 1
JavaScript中的原型 保姆级文章一文搞懂
|
6月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
118 2
|
2月前
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
23 0
|
6月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
164 4