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)); |
doT.js使用介绍的更多相关文章
- doT.js详细介绍
doT.js详细介绍 doT.js特点是快,小,无依赖其他插件. 官网:http://olado.github.iodoT.js详细使用介绍 使用方法:{{= }} for interpolati ...
- dot.js教程文档api
dot.js是一个短小精悍的js模板引擎,压缩版仅有4K大小,最近使用dot的时候整理出这个dot.js教程文档,其实称不上什么教程,只是对dot.js的介绍和实例,希望能帮助到一部分需要的人. 使用 ...
- doT.js实例详解
doT.js详细介绍 doT.js特点是快,小,无依赖其他插件.官网:http://olado.github.iodoT.js详细使用介绍 使用方法:{{= }} for interpolation{ ...
- 模板引擎doT.js介绍及如何判断对象为空、如何嵌套循环···
doT.js 灵感来源于搜寻基于 V8 和 Node.js ,强调性能,最快速最简洁的 JavaScript 模板函数 引入 javascript 文件: <script type=" ...
- doT.js源码解读
doT.js非常的简洁.全部代码也就200行不到.它的基本思路就是通过强大的正则表达式,把模块转变成可执行的函数,动态生成html字符串.核心new Function(c.varname, str); ...
- Web3D编程入门总结——WebGL与Three.js基础介绍
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...
- MVVM前后分离轻量级框架应用juicer和doT.js
前言 前后端开发分的越来越细化,为了方便前端工程师更好的调试后端工程师嵌套的代码,前后分离技术就出现了,简单理解其实就是Ajax异步将数据提供给JavaScript,由JavaScript进 ...
- dot.js使用心得
一.dot.js介绍 最近用到的数据模板引擎有很多,今天讲的doT.js也是其中一种. doT.js的特点是体积小,速度快,并且不依赖其他插件. 官网下载:http://olado.github.io ...
- 前端模板引擎doT.js的使用
前言 我们在做前端开发时,经常需要根据后台返回的json数据动态生成html并插入到页面中显示.最简单的方法就是通过jQuery去遍历数据拼接html,如以下: <script> var ...
随机推荐
- 2016微软技术大会Azure相关回顾
3 天的时间稍纵即逝,伴随着本届大会压轴大奖的揭晓,2016 年度的微软技术大会完美落幕.以“数字化转型”为主题,来自微软全球的近百位顶尖技术专家.工程师和业务负责人拔冗而至,在 130 余场的专业技 ...
- 初识 visJs (基于html5 canvas开发的可视化框架)
本文参考 https://github.com/almende/vis 编写并且自己总结各种快捷方式,意在帮助开发可视化图表的前端朋友快速了解visJs. vis.js Vis.js是一个基于浏览器的 ...
- Android开发最佳学习路线图(转)
Android开发总体路线图: 基础学习——JavaSE: 很多朋友一上手就开始学习Android,似乎太着急了一些. Android应用程序开发是以Java语言为基础的,所以没有扎实 ...
- scrum和团队合作
一. 队名及宣言 队名 the better for you 宣言Change our lives with code 二. 队员及分工 a.承担软件工程的角色 姓名 学号 角色 张美庆 B20150 ...
- (转)每天一个linux命令(1):ls命令
ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...
- mac下登录服务器
1.先通过帐号密码登录到服务器: ssh 用户名@服务器地址 https://jingyan.baidu.com/article/546ae1853132bf1148f28c42.html 2.登录后 ...
- 【转】CommonJS,AMD,CMD区别
学得比较晕,再次看commonjs,amd, cmd时好像还是没完全弄清楚,今天再整理一下: commonjs是用在服务器端的,同步的,如nodejs amd, cmd是用在浏览器端的,异步的,如re ...
- POJ 1681 Painter's Problem 【高斯消元 二进制枚举】
任意门:http://poj.org/problem?id=1681 Painter's Problem Time Limit: 1000MS Memory Limit: 10000K Total ...
- [19/03/21-星期四] 异常(Exception) (一)
一.引言 在实际工作中,我们遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定符合你的要求;你的程序要打开某个文件, 这个文件可能不存在或者文件格式不对 ,你要读取数据库的数据,数据可 ...
- 2018.11.30 zsh: command not found: mysql 的解决办法mac环境下
系统环境变量的问题.解决办法: 1.打开终端.输入open .zshrc 会出现一个可编辑文档, 2.找到# User configuration部分,在下一行添加source ~/.bash_pro ...