帖子
帖子
用户
博客
课程
显示全部楼层
21
帖子
0
勋章
159
Y币

doT.js的一些看法

[复制链接]
发表于 2016-3-31 16:54:20
doT.js可以把从数据库取出来的数据,按次序,动态的添加到页面中,可以说是我们写下拉页面的神器。
首先我们要引入一个srcipt文件。
<script type="text/javascript" src="../script/doT.min.js"></script>
如果没有的话,官方网站有相关出处。
下面将一下用法:
{{= }}为赋值语句,用两个大括号是他自己的语法,这个我们更改不了。
<div id="list"></div>
<script id="'template" type="text/template">// 这里的template可以随便写,只要不是srcipt之类的就可以。
<div>{{=it.name}}</div> 将这条记录的name值复制给div
<div>{{=it.age}}</div> 将这条记录的年龄赋值给div
</script>
这里的it 也是规定的,可以理解为一条记录。
list = $api.byId('list');  得到id为list的div,准备向里面添加东西,必须先声明此方法
var templateText = $api.byId('template').innerHTML;将模板的内容取出
   var dot = doT.template(templateText);将模板初始化
如果此时有数据源名为res,
list.innerHTML = dot(res);
即可以将数据写入到div中

那我们如果循环写入呢,我们可以加上一个循环体for 也可以使用~.
同样我们在'template'中添加一个。it的意思也是一条数据,这里可以看出,it是一个数组问不是一个变量。
<div id="list"></div>
<script id="'template" type="text/template">
{{  for ( var i = 0 ; i <= it.length ; i++ ) {  }}
<div>{{ =it.name }}</div>
<div>{{ =it.age }}</div>
{{  }  }}
</script>
list = $api.byId('list');
var templateText = $api.byId('template').innerHTML;
   var dot = doT.template(templateText);
list.innerHTML = dot(res);
这里的循环可以用下面的方法代替。
<div id="list"></div>
<script id="'template" type="text/template">
{{~ it:data }} data是一个数组
<div>{{ =data.name }}</div>
<div>{{ =data.age }}</div>
{{~}}
</script>
list = $api.byId('list');
var templateText = $api.byId('template').innerHTML;
   var dot = doT.template(templateText);
list.innerHTML = dot(res);
还有就是条件的用法。
{{? }} if
{{?? }} else if
{{??}} else
请大家多多指教,有不对的地方请提出来!


17
帖子
0
勋章
174
Y币
写得不错,鼓励!~
21
帖子
0
勋章
159
Y币
眷恋星空 发表于 2016-3-31 17:11
写得不错,鼓励!~

谢谢
11
帖子
0
勋章
192
Y币
不错,留着以后再看看
21
帖子
0
勋章
159
Y币
搜农 发表于 2016-4-1 06:52
不错,留着以后再看看

谢谢捧场!
5
帖子
0
勋章
55
Y币
留着以后,慢慢看
26
帖子
0
勋章
158
Y币
学习了
6
帖子
0
勋章
12
Y币
谢谢你  关注n
90
帖子
0
勋章
390
Y币
这个应该有用,简单明了。
您需要登录后才可以回帖 登录

本版积分规则