doT使用心得
来源:互联网 发布:淘宝店铺怎样装修视频 编辑:程序博客网 时间:2024/05/17 04:48
doT是一个小巧快速无依赖的JS模板框架:
- 无依赖, 120 行代码
- 极其快速
- 自定义定界符 (custom delimiters)
- 运行时求值 (runtime evaluation)
- 运行时插值 (runtime interpolation)
- 编译时求值 (compile-time evaluation)
- 支持局部模板
- 支持条件语句
- Github源码地址
DoT定界符列表:
- {{ }} 用于求值(evaluation)
- {{= }} 用于插值(interpolation)
- {{! }} 用于编码求值
- {{# }} 用于编译时求值/引入和局部模板
- {{## #}} 用于编译时定义
- {{? }} 条件语句
- {{~ }} 数组迭代
Demo:
首先需要引入 javascript 文件:
<script type="text/javascript" src="doT.js"></script>
插值/求值模板
模板数据必须使用 it 作为引用
<script id="pagetmpl" type="text/template"> <h2>Here is the page using a header template</h2> //{{=}}插入值 {{=it.name}} //{{#}}编译时求值 {{#def.header}} </script>
<script type="text/javascript"> //模拟数据 var data = { title: "My title", name: "My name" }; // template()是dot用来编译模板的方法 var pagefn = doT.template(document.getElementById('script模板ID').html(), data); // content是自定义模板ID document.getElementById('content').innerHTML = pagefn; </script>
<body> <div id="content"></div> </body>
数组迭代模板
<script type="text/template" id='girlList'> {{~it:value}} <li class="item" onclick="console.log('我是:{{=value.nick}}')"> ![]({{=value.img_url}}) <p class="name">{{=value.nick}}</p> <p class="info">{{=value.age}}岁 {{=value.username}}</p> </li> {{~}} </script>
// ret是服务器返回JSON数据 // template()是dot用来编译模板的方法 girlList是自定义模板ID var resultText = doT.template(girlList.innerHTML)(ret); // 追加数据 $('ul').append($api.dom('#dataList'), resultText); // 覆盖数据 $('ul').html(resultText);
条件模板
{{?x==y}}<div>如果x==y执行这里</div>{{??}}<div>如果x==y不成立 执行这里</div>{{?}}
发现一个小东西,使用拼接字符串方式的时候:
var resultStr = ""; for(var i = 0;i < ret.length; i++){ resultStr += '<li class="item" onclick="console.log(ret[i])">'; resultStr += '![]('+ ret[i].img_url+')' resultStr += '<p class="name">'+ ret[i].nick+'</p>' resultStr += '<p class="info">'+ ret[i].age+'岁 '+ ret[i].username+'</p>' resultStr += '</li>' }
这里的console.log(ret[i])没法执行,因为浏览器编译时onclick方法并不在这个for循环下,ret是undefined,而使用doT模板没有这个问题,可以比较方便的操作数据,
仅供参考,欢迎指正
阅读全文
1 0
- doT使用心得
- doT.js使用
- DOT语言使用笔记(1)
- doT.js详细使用介绍
- doT.js的基本使用
- java 绘图 -- dot基本使用
- doT.js插件的使用
- Graphviz dot,使用dot语言快速生成图表
- doxygen无法使用dot简单解决方法
- 在Dot Net 中使用模拟Clipboard
- Opensuse Graphviz,使用DOT代替VISIO
- 使用Graphviz Dot绘制类图
- 使用graphviz dot来画图表
- 使用Fsharp探索Dot net Enterprise Library
- doT.js 模板引擎的使用
- doT.js 模板引擎的使用
- 【转】使用graphviz dot来画图表
- Vector3.Dot和Vector3.Cross的使用
- Linux设置定时任务
- Kafka java Client 错误 org.apache.kafka.clients.NetworkClient Error connecting to node 1 at slave2:909
- shell脚本基本应用
- ApiCloud屏幕适配原理及实现
- CSS命名规范(规则)-常用的CSS命名规则
- doT使用心得
- 权限系统--组织机构管理
- Event常见属性-css学习
- c++运算符重载
- Flex-伸缩布局-flex-常用标签
- 1002. 写出这个数 (20) python3.6
- 字符串的压缩strZig
- 【unique-binary-search-trees-ii】
- IE浏览器使用ajax时严重的缓存问题。