doT js 常见错误

doT 模板一般是放在script脚本里面的,例如:

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. <script id="conditionstmpl">  
  11.     {{ if(!it.name){ }}  
  12.     <div> 你还没有名字</div>  
  13.     {{ } else { }}  
  14.     <div>Oh, I love your name, {{=it.name}}!</div>  
  15.     {{ }  }}  
  16. </script>  
  17. <hr/>  
  18. <div id="condition"></div>  
  19. <script type="text/javascript">  
  20.     var dataEncode = {"name": "", "age": 31};  
  21.     var interText = doT.template($("#conditionstmpl").text());  
  22.     $("#condition").html(interText(dataEncode));  
  23. </script>  
  24. </body>  
  25. </html>  

 

 
但是我不太喜欢放在script标签中,我喜欢把模板放在div中,如下:

Html代码  

  1. <body>  
  2. <div id="conditionstmpl">  
  3.     {{? it.name }}  
  4.     <div>Oh, I love your name, {{=it.name}}!</div>  
  5.     {{?? !it.age == 0}}  
  6.     <div>Your age is {{=it.age}}</div>  
  7.     {{??}}  
  8.     You don't have age and still don't have a name?  
  9.     {{?}}  
  10. </div>  
  11. <hr/>  
  12. <div id="condition"></div>  
  13. <script type="text/javascript">  
  14.     var dataEncode ={"name":"","age":0};  
  15.     var interText = doT.template($("#conditionstmpl").html());  
  16.     $("#condition").html(interText(dataEncode));  
  17. </script>  
  18. </body>  

 但是下面的代码就出现了问题:

 

报错信息如下:

 这是为什么呢?因为js在获取div的内容时,自动把div中的内容进行了转义:

转义前 转义后

< &lt ;
> &gt ;

即把小于号变成了&lt ; ,这不是我预期的.因为html把<转化成了&lt ;,所以doT 报错了. 
解决方法:使用如下方法还原

 

Js代码  

  1. /*** 
  2.  * Html解码获取Html实体<br> 
  3.  *     '&lt;'--> '<' 
  4.  * @param value 
  5.  * @returns {*|jQuery} 
  6.  */  
  7. function htmlDecode(value){  
  8.     return $('<div/>').html(value).text();  
  9. }  

 处理模板的js:

Js代码  

  1. var evalText = doT.template(htmlDecode($invoiceListDot.html()));  
  2.                     $invoiceListDiv.html(evalText(invoiceInfoDtos));  

 

参考:http://blog.csdn.net/hw1287789687/article/details/46671437

时间: 2024-10-01 16:53:49

doT js 常见错误的相关文章

关于JSP中,中文问题(泛指字符问题),以及常见错误调试手记

js|错误|问题|中文 关于JSP中,中文问题(泛指字符问题),以及常见错误调试手记 sports98写于2001-1-9 序言:在论坛中,生活中,工作中,有不少和我一样属于鸟级的用户,在面对着不明白的问题的时候就盲目了,多交流,多写写日记就好的多了 文章内容关于:2001-01-08日,编写/调试[用户注册程序] 编写环境:WIN2K(简体中文版) server sp2 + TOMCAT4.0 + J2SDK1.3+MYSQL4.0(alpha)检测数据库内容环境:WIN2K(简体中文版) s

WCF分布式开发常见错误(30)

WCF分布式开发常见错误(30):Start element 'Binary' expected(期望的初始元素是'Binary' ) WCF分布式开发常见错误(30):Start element 'Binary' expected(期望的初 始元素是'Binary' ). Found 'SayHello'. 调试WCF4.0代码遇到的错误,目前网络上参考的资料很少,我把这个异常的 信息给收集起来,包括解决办法,整理为一篇文章,供大家参考.这个问题目前 没什么参考资料.使用Google也搜索不到

js 常见容错

js 常见容错: 1,使用插件时先判断插件是否存在 错误: Js代码   if (plugins && plugins.toast && plugins.toast.showShortCenter) {           plugins.toast.showShortCenter(message22);       } else {           alert(message22);       }       正确: Js代码   if (window.plugin

网站优化常见错误观点方法及优化方法

网站优化常见错误观点方法及优化方法 1.频繁修改网站的title,keyword,description. 那个时候做站,看到网络上今天这个关键字搜索不错,明天那个关键字搜索不错,就总是匆匆的改个题目啊,改个关键字啊,改个说名什么的.这一改不要紧,本来收录了很多的页一下都没了,本来在搜索能排在前2页的,一下就找不到哪里去了--后来在A5上,以及网络上学习其他只是才知道,这种情况估计是网站被降权甚至是被K了--当时那叫一个伤心啊...在这里奉劝各位新站长,千万不要把keyword,descript

【MySQL】常见错误与常用命令的集锦

[背景介绍]     在使用SQL Server数据库期间,想必大家一定都有过解决各种问题的经历了,很多时候,都会在大家的博客中看到问题与解决方案.现在开发使用的是MySQL数据库,现在来看,发现自己在MySQL中的经历越来越多.前两天,自己电脑的MySQL数据库出问题了,折腾了我好几个小时~~     这篇博客就将把之前遇到的和这次遇到的错误记录下来,以后也可以更好更快的找到解决办法吧. [常见错误] (1) windows mysql提示:1045 access denied for use

jni使用基础(五)之ndk常见错误

    常见错误: 1.方法名与c语言实现的签名不对应.        异常:UnsatisfiedLinkError   2.如果在执行ndk-build时,出现make:***  Error 1      Error的id为1,C代码的源文件出现了问题.       从上往下解决异常.   3.android.mk文件配置错误    mak:*** No rule to make target    查看 编译的源文件是否存在 并且可读   4.一运行程序,程序界面无法显示.而在logcat

10个DIV+CSS常见错误

10个DIV+CSS常见错误,出了问题可以来参考下,是否您也犯了以下错误呢? 1. 检查HTML元素是否有拼写错误.是否忘记结束标记     即使是老手也经常会弄错div的嵌套关系.可以用dreamweaver的验证功能检查一下有无错误.     2. 检查CSS是否正确     检查一下有无拼写错误.是否忘记结尾的 } 等.可以利用CleanCSS来检查 CSS的拼写错误.CleanCSS本是为CSS减肥的工具,但也能检查出拼写错误.     3. 确定错误发生的位置     假如错误影响了整

Xhtml第12天:校验及常见错误

xhtml|错误 辛苦了好多天,我们努力学习使用xhtml+css来重新设计我们的网站.那么我们如何知道自己制作的页面真的符合web标准?w3c和一些志愿者网站提供了在线校验程序,来帮助我们检查页面是否符合标准,并提供了修正错误的帮助信息.这些校验非常有用,是我调试页面第一步要做的事情. 1.xhtml校验 校验网址:http://validator.w3.org/ 校验方式:网址校验.文件上传校验 校验成功,会显示"this page is valid xhtml 1.0 transition

Web标准建站校验和常见错误

web|web标准|错误 我们使用XHTML+CSS来重新设计我们的网站,如何知道自己制作的页面真的符合web标准?W3C和一些志愿者网站提供了在线校验程序,来帮助我们检查页面是否符合标准,并提供了修正错误的帮助信息.这些校验非常有用,是我调试页面第一步要做的事情. 1.XHTML校验 校验网址:http://validator.w3.org/ 校验方式:网址校验.文件上传校验 校验成功,会显示"This Page Is Valid XHTML 1.0 Transitional!".