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

doT.js使用介绍的更多相关文章

  1. doT.js详细介绍

    doT.js详细介绍   doT.js特点是快,小,无依赖其他插件. 官网:http://olado.github.iodoT.js详细使用介绍 使用方法:{{= }} for interpolati ...

  2. dot.js教程文档api

    dot.js是一个短小精悍的js模板引擎,压缩版仅有4K大小,最近使用dot的时候整理出这个dot.js教程文档,其实称不上什么教程,只是对dot.js的介绍和实例,希望能帮助到一部分需要的人. 使用 ...

  3. doT.js实例详解

    doT.js详细介绍 doT.js特点是快,小,无依赖其他插件.官网:http://olado.github.iodoT.js详细使用介绍 使用方法:{{= }} for interpolation{ ...

  4. 模板引擎doT.js介绍及如何判断对象为空、如何嵌套循环···

    doT.js 灵感来源于搜寻基于 V8 和 Node.js ,强调性能,最快速最简洁的 JavaScript 模板函数 引入 javascript 文件: <script type=" ...

  5. doT.js源码解读

    doT.js非常的简洁.全部代码也就200行不到.它的基本思路就是通过强大的正则表达式,把模块转变成可执行的函数,动态生成html字符串.核心new Function(c.varname, str); ...

  6. Web3D编程入门总结——WebGL与Three.js基础介绍

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  7. MVVM前后分离轻量级框架应用juicer和doT.js

    前言      前后端开发分的越来越细化,为了方便前端工程师更好的调试后端工程师嵌套的代码,前后分离技术就出现了,简单理解其实就是Ajax异步将数据提供给JavaScript,由JavaScript进 ...

  8. dot.js使用心得

    一.dot.js介绍 最近用到的数据模板引擎有很多,今天讲的doT.js也是其中一种. doT.js的特点是体积小,速度快,并且不依赖其他插件. 官网下载:http://olado.github.io ...

  9. 前端模板引擎doT.js的使用

    前言 我们在做前端开发时,经常需要根据后台返回的json数据动态生成html并插入到页面中显示.最简单的方法就是通过jQuery去遍历数据拼接html,如以下: <script> var ...

随机推荐

  1. apk接入google play邮箱登陆及充值注意事项

    unity3d 接入google play商店相关sdk,相关要求A.环境配置: 1.手机安装谷歌安装器 2.使用谷歌安装器安装Google 服务框架.Google Play服务.Google Pla ...

  2. Appium 如何模拟返回按键

    from appium.webdriver import Remote driver.keyevent(4) python中点击返回键是这样写的 附录 keycode 电话键 KEYCODE_CALL ...

  3. 一個新的面試題目,leetcode上面可以找到shortest palindrome

    記錄一下新的面試題目,其實題目是舊的,只是我才見到.以前研究過,只不過以前的解法不容易理解,現在有了新的遞歸解法.記錄一下. public String shortestPalindrome(Stri ...

  4. 关于Cookie 的HttpOnly属性(java/web操作cookie+Tomcat操作jsessionid)

    关于Cookie的其它只是不在累述.本文主要讲讲自己在项目中遇到的cookie的HttpOnly属性问题 Cookie的HttpOnly属性说明 cookie的两个新的属性secure和Httponl ...

  5. jetbrain rider 逐渐完美了,微软要哭了么?

    2019-03-24 10:08:42 多年的vsiual studio使用经验,各种小瑕疵:到现在的visual studio是越来越大了:简直到了无法忍受境地: 每次重装系统都要重新安装下,这个不 ...

  6. WAKE-SPM-综述

    1,SPM 1,1source paper:http://lear.inrialpes.fr/pubs/2007/ZMLS07/ZhangMarszalekLazebnikSchmid-IJCV07- ...

  7. ArcGIS Server Java 9.3 REST API的中文查询问题的解决方案

    [2009.2.18补注]这个问题在SP1 for Linux中修复,SP1 for Windows下问题更加严重,如果打了SP1 for Windows,还想使用REST服务,就必须使用Linux或 ...

  8. Python 变量交换

    # coding = utf-8 a, b = 1, 2 print 'before change' print a, b a, b = b, a print 'after change' print ...

  9. HDU 1853 MCMF

    题意:给定一个有向带权图,使得每一个点都在一个环上,而且权之和最小. 分析:每个点在一个环上,入度 = 出度 = 1,拆点入点,出点,s到所有入点全部满载的最小费用MCMF; #include < ...

  10. react中修改antd的默认样式

    最近在做react+antd项目.不可避免的遇到了修改antd默认样式的问题. 比如,table组件的表头背景色设置,如果直接使用元素样式,会修改整个项目的table.这里我用的方法是,给table添 ...