`

doT js 常见错误

阅读更多

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="../../doT.js"></script>
    <script type="text/javascript" src="http://hbjltv.com/static/js/jquery-1.11.1.js"></script>
</head>
<body>
<script id="conditionstmpl">
    {{ if(!it.name){ }}
    <div> 你还没有名字</div>
    {{ } else { }}
    <div>Oh, I love your name, {{=it.name}}!</div>
    {{ }  }}
</script>
<hr/>
<div id="condition"></div>
<script type="text/javascript">
    var dataEncode = {"name": "", "age": 31};
    var interText = doT.template($("#conditionstmpl").text());
    $("#condition").html(interText(dataEncode));
</script>
</body>
</html>

 

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

<body>
<div id="conditionstmpl">
    {{? it.name }}
    <div>Oh, I love your name, {{=it.name}}!</div>
    {{?? !it.age == 0}}
    <div>Your age is {{=it.age}}</div>
    {{??}}
    You don't have age and still don't have a name?
    {{?}}
</div>
<hr/>
<div id="condition"></div>
<script type="text/javascript">
    var dataEncode ={"name":"","age":0};
    var interText = doT.template($("#conditionstmpl").html());
    $("#condition").html(interText(dataEncode));
</script>
</body>

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

 

报错信息如下:

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

转义前 转义后
< &lt ;
> &gt ;

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

 

/***
 * Html解码获取Html实体<br>
 *     '&lt;'--> '<'
 * @param value
 * @returns {*|jQuery}
 */
function htmlDecode(value){
    return $('<div/>').html(value).text();
}

 处理模板的js:

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

 

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

 

 

  • 大小: 80.1 KB
  • 大小: 76.2 KB
  • 大小: 14 KB
  • 大小: 14 KB
  • 大小: 15.4 KB
1
0
分享到:
评论

相关推荐

    JavaScript模板引擎doT.js.zip

    doT.js 包含为浏览器和Node.js 准备的 JavaScript 模板引擎。 标签:doTjs

    GoogleChrome扩展dotjs.zip

    dotjs 是一个谷歌扩展,它可根据文件名 ~/.js 来执行 JavaScript 文件。例如,如果你想访问 http://www.google.com/ ,dotjs 将会执行 ~/.js/google.com.js。 而这将会使你很方便地使用 JavaScript 去改进你所喜爱的...

    dotjs-loader:用于webpack的doT.js模块加载器

    dotjs-loader 用于webpack的模块加载器 用法 安装 使用npm安装。 doT是一个对等依赖项,应单独安装: npm install --save-dev dot dotjs-loader 配置 在webpack.config.js配置加载器: module: { loaders : [ {...

    doT.js简单入门

    NULL 博文链接:https://0qingfeideyi0.iteye.com/blog/2274741

    de4dot反编译de4dot反编译de4dot反编译

    de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反编译de4dot反...

    Dot2dot

    Dot2dot

    dot模版遍历集合的两种写法

    不熟悉DOT的遍历或者说看不习惯dot官方遍历的,可以看下类似for或foreach的方法,相同效果

    de4dot_All_Version.rar

    外国大神的De4Dot合集 de4dotfixedbyIvancitoOz de4dotModByBS de4dotModbyTheProxy de4dotReactorv4_9ModbyPC_RET de4dot_2 de4dot_2_0_3 de4dot_3 de4dot_3_1_0 de4dot_3_1_4 de4dot_4_9_PC_RET de4dot_5_8_...

    MATLAB常见错误——GUI

    这是matlab的GUI的开发时常见错误集合,很不错,里面给很可能就有你需要的知识。

    doT.js API

    doT.js的特点是体积小,速度快,并且不依赖其他插件。 官网下载:http://olado.github.io

    cinclude2dot.pl

    用cinclude2dot.pl及graphviz来绘制头文件包含结构图。 包括cinclude2dot.pl,提取的dot.exe,提取的perl.exe及一个示例。 注意,dot.exe,perl.exe由于我本机是安装的官方安装包,没有测试提取的能否正常运行。 亲测...

    de4dot-net35.zip_Open Net_de4dot_de4dot-net35_de4dot-net35.zip_d

    de4dot is an open source (GPLv3) .NET deobfuscator and unpacker written in C#. It will try its best to restore a packed and obfuscated assembly to almost the original assembly. Most of the obfuscation...

    gulp-dotjs-packer:用 gulp 编译 doTjs (gulpjs.com)

    #gulp-dotjs-packer 用 gulp 编译 (gulpjs.com) 信息 包裹 gulp-dotjs-packer 描述 Gulp 的 doTjs 编译器 吞咽版 3.x 用法 var gulp = require ( "gulp" ) ; var dotPacker = require ( "gulp-dotjs-packer" ) ; ...

    华为dot1x常用命令

    介绍华为dot1x常用命令使用,更多参数请查看华为网站

    Python-gprof2dot将分析输出为dot图谱文件

    gprof2dot-将分析输出为 dot 图谱文件

    DOT语言中文指导

    DOT语言中文指导的教程,简单实用,能够快速掌握DOT语言

    dot+NET数据库开发技术

    dot+NET数据库开发技术 dot+NET数据库开发技术

    亚马逊echo dot控制指南

    echo dot控制指南,适合小白使用: 可以顺畅访问 Amazon 服务的 Wi-Fi 网络。  一台 Echo 设备,包括 Echo、Echo Tap、Echo Dot 或者 Echo Show  Amazon 账号  智能设备 您也可以前往 App Store、各大 Android...

    De4Dot,3.0.3版本

    De4Dot是一个很强的.Net程序脱壳,反混淆工具。它可以帮助开发者快速地反混淆.NET程序集,使得程序代码更容易读懂。支持对于以下工具混淆过的代码的清理:如 Xenocode、.NET Reactor、MaxtoCode、Eazfuscator.NET、...

    gprof2dot.rpm

    gprof2dot工具,fedora12版本

Global site tag (gtag.js) - Google Analytics