博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
doT JS
阅读量:6119 次
发布时间:2019-06-21

本文共 1993 字,大约阅读时间需要 6 分钟。

1doT.js github地址:

http://olado.github.io/doT/

实例1:简单

Html代码  
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title></title>  
  6.     <script type="text/javascript" src="../../doT.js"></script>  
  7.     <script type="text/javascript" src="http://hbjltv.com/static/js/jquery-1.11.1.js"></script>  
  8. </head>  
  9. <body>  
  10. <div id="interpolationtmpl">  
  11.     <div>Hi {
    {=it.name}}!</div>  
  12.     <div>{
    {=it.age || ''}}</div>  
  13. </div>  
  14. <hr/>  
  15. <div id="interpolation"></div>  
  16. <script type="text/javascript">  
  17.     var dataInter = {"name": "Jake", "age": 31};  
  18.     var interText = doT.template($("#interpolationtmpl").html());  
  19.     $("#interpolation").html(interText(dataInter));  
  20. </script>  
  21. </body>  
  22. </html>  

运行结果:

 实例二:条件判断

Html代码  
  1. <body>  
  2. <div id="conditionstmpl">  
  3.     {
    {? !it.name }}  
  4.     <div> 你还没有名字</div>  
  5.     {
    {?? }}  
  6.     <div>Oh, I love your name, {
    {=it.name}}!</div>  
  7.     {
    {?}}  
  8. </div>  
  9. <hr/>  
  10. <div id="condition"></div>  
  11. <script type="text/javascript">  
  12.     var dataEncode = {"name": "黄威", "age": 31};  
  13.     var interText = doT.template($("#conditionstmpl").html());  
  14.     $("#condition").html(interText(dataEncode));  
  15. </script>  
  16. </body>  

运行结果:

 

实例三:循环+条件判断

Html代码  
  1. <body>  
  2. <div id="evaluationtmpl">  
  3.     {
    { for(var prop in it) { }}  
  4.         {
    {? typeof it[prop]=='object' }}  
  5.             <div style="font-weight: bold;" >KEY:{
    {= prop }}---VALUE:</div>  
  6.             {
    { for(var prop2 in it[prop]) { }}  
  7.                 <div style="margin-left: 20px;" >key:{
    {= prop2 }}---value:{
    {= it[prop][prop2] }}</div>  
  8.             {
    { } }}  
  9.         {
    {?? }}  
  10.             <div>KEY:{
    {= prop }}---VALUE:{
    {= it[prop] }}</div>  
  11.         {
    {?}}  
  12.   
  13.     {
    { } }}  
  14. </div>  
  15. <hr/>  
  16. <div id="evaluation"></div>  
  17. <script type="text/javascript">  
  18.     var dataEval = {  
  19.         "name": "Jake",  
  20.         "age": 31,  
  21.         "interests": ["basketball", "hockey", "photography"],  
  22.         "contact": {"email": "jake@xyz.com", "phone": "999999999"}  
  23.     };  
  24.     var evalText = doT.template($("#evaluationtmpl").html());  
  25.     $("#evaluation").html(evalText(dataEval));  
  26. </script>  
  27. </body>  

 运行结果:

 

源码下载地址:

http://pan.baidu.com/s/1c0HFyb2

说明:1,{

{? typeof it[prop]=='object' }} 表示条件判断,结束标签是{
{?}}2, {
{?? }}是条件判断的else
3,{
{ 和{
{? 中均可以使用原生的js语法,如for,typeof 等
4,模板并不是一定要放在script标签中,也可以放在隐藏的div标签中

 

 

你可能感兴趣的文章
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>