前端模板引擎doT.js的用法
简介
一款简单好用的前端模板引擎
用法
<script type="text/javascript" src="js/doT.min.js"></script>
! 和 = 的用法与区别
<!--用户信息-->
<div class="ibBox yhxx" id="userInfo">
<script id="userTemplate" type="text/x-dot-template">
<div class="ibTitle">用户信息</div>
<dl>
<dd>
<label><em>姓名:</em><span>{{!it.name}}</span></label>
<label><em>工号:</em><span>{{=it.number}}</span></label>
<label><em>机构:</em><span>{{!it.organName}}</span></label>
</dd>
</dl>
</script>
</div>
<script>
var data = {"name":"张三","number":,"organName":""},//要渲染的数据
var userTemplate = doT.template($("#userTemplate").text());//生成模板
$("#userInfo").html(userTemplate(data));//数据渲染
</script>
两者都是赋值,区别于 ! 无法渲染数值为0的数据,而 = 可以,不过 ! 可以渲染带编码的数据,比如
var data= {"url":"http://jq22.com/?keywords=Yoga","html":"<div style='background: #f00; height: 30px; line-height: 30px;'>html元素</div>"};
~ 的用法
{{~it.list:item:index}}
<tr data-id="{{!item.id}}">
<td>{{!item.title}}</td>
<td>{{!item.publishTime}} </td>
</tr>
{{~}}
用于循环数组
? 的用法
<span class="{{? it.type==1}}w1{{?? it.type==2}}w2{{??}}w3{{?}}">
{{?it.status==}}未发布{{??}}已发布{{?}}
</span>
条件判断,相当于if....else if......
# 的用法
<div class="ibBox yhxx" id="userInfo">
<script id="userTemplate" type="text/x-dot-template">
<!-- 定义模板tem1 -->
{{## def.tem1:
<label><em>姓名:</em><span>{{!it.name}}</span></label>
#}}
<div class="ibTitle">用户信息</div>
<dl>
<dd>
<!-- 引用模板tem1 -->
{{#def.tem1}}
<label><em>工号:</em><span>{{=it.number}}</span></label>
<label><em>机构:</em><span>{{!it.organName}}</span></label>
</dd>
</dl>
</script>
</div>
格式:定义模板{{##def.name:******#}} name为模板名称,*****为模板内容,引用模板{{#def.name}} name为模板名称
for 原生循环的使用
{{ for(var i=;i<it.length;i++){ }}
{{ if(it[i].bz == ){ }}
{{#def.tem1}}
{{ }else{ }}
{{#def.tem2}}
{{ } }}
{{ } }}
前端模板引擎doT.js的用法的更多相关文章
- 前端模板引擎doT.js的使用
前言 我们在做前端开发时,经常需要根据后台返回的json数据动态生成html并插入到页面中显示.最简单的方法就是通过jQuery去遍历数据拼接html,如以下: <script> var ...
- 模板引擎doT.js用法详解
作为一名前端攻城师,经常会遇到从后台ajax拉取数据再显示在页面的情境,一开始我们都是从后台拉取再用字符串拼接的方式去更达到数据显示在页面! <!-- 显示区域 --> <div i ...
- 模板引擎doT.js
作为一名前端攻城师,经常会遇到从后台ajax拉取数据再显示在页面的情境,一开始我们都是从后台拉取再用字符串拼接的方式去更达到数据显示在页面! <!-- 显示区域 --> <div i ...
- 模板引擎doT.js介绍及如何判断对象为空、如何嵌套循环···
doT.js 灵感来源于搜寻基于 V8 和 Node.js ,强调性能,最快速最简洁的 JavaScript 模板函数 引入 javascript 文件: <script type=" ...
- 关于模板引擎handlebars.js基本用法
说明:模板引擎主要针对于渲染DOM,取代了字符串拼接,用下面的代码亲测handlebars模板引擎比字符串拼接渲染DOM慢了20ms, 这里配置一个在线DEMO,简单说明下handlebars.js的 ...
- 前端模板引擎artTemplate.js
. 关于artTemplate模板引擎的详细原理请移步高性能JavaScript模板引擎原理解析,本文只探讨如何使用.初学前端的人一般对于绑定数据都是使用原生js或者jquery来拼接字符串,此为ha ...
- 前端JS模板引擎Mustache.js的用法
Mustache.js在前端是一个非常强大的模板 Mustache用法参考
- Mustache.js前端模板引擎源码解读
mustache是一个很轻的前端模板引擎,因为之前接手的项目用了这个模板引擎,自己就也继续用了一会觉得还不错,最近项目相对没那么忙,于是就抽了点时间看了一下这个的源码.源码很少,也就只有六百多行,所以 ...
- Javascript模板引擎mustache.js详解
mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后只有9KB,非常值得在项目中使用.本文总结它的使用方法和一些使用心得,内容不算很高深 ...
随机推荐
- 2050编程赛 冰水挑战 HDU 6495
题目地址:https://vjudge.net/problem/HDU-6495 思路:我们需要维护的是挑战了n个之后剩余体力值,剩余体力值越大越好dp[N(i)][N(j)],第一个维度,记录当前是 ...
- 哈工大计算机网络Week0-概述
目录 L01什么是计算机网络 计算机网络 Internet L02什么是网络协议? 定义 内容 三要素 L03计算机网络结构 网络边缘 接入网络 数字用户线路DSL 电缆网络 无线接入网络 网络核心( ...
- Nginx+vsftpd
一.安装Nginx 关闭selinux和firewalld setenforce sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selin ...
- Guid几种格式及之间的互换,以及利用Base64缩短guid的长度到22个字符和还原
1.Guid.NewGuid().ToString("N") 结果为: 38bddf48f43c48588e0d78761eaa1ce6 2.Guid.NewGuid().ToSt ...
- Spring_AOP基于AspectJ的注解开发&JDBC的模板使用&事务管理(学习笔记3)
一:AOP基于AspectJ的注解开发 1,简单的实例: 1)引入相应的jar包 2)在配置文件里引入相关约束 <beans xmlns="http://www.springfra ...
- C语言入门9-1-分类函数
分类函数 ASCII字符可以分为英文字母.数字.控制字符.空白字符.大小写字母以及标点符号,分类是指对字符进行属性判定,判断字符属于哪些范畴,这些属性的判定在程序中非常常见,尤其是通信协议的字符处理部 ...
- [剑指offer] 46. 孩子们的游戏(圆圈中最后剩下的数)
题目描述 随机指定一个数m,让编号为0的小朋友开始报数.每次喊到m-1的那个小朋友要出列,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下最后一个小朋友 ...
- CHM格式
转载请标明出处:https://www.cnblogs.com/tangZH/p/11176995.html CHM格式为CHM头,CHM头节,内容三部分组成. 总体格式图: 初始化头包含了CHM的相 ...
- C#加密解密(AES)
using System; namespace Encrypt { public class AESHelper { /// <summary> /// 默认密钥-密钥的长度必须是32 / ...
- BFS(宽度优先搜索) -例题
原题地址 https://vjudge.net/contest/313171 密码:algorithm A - Rescue Angel was caught by the MOLIGPY! ...