Underscore解析html模板
2014-11-20 21:59
169 查看
Underscore 的_.template模板函数只能解析3种模板标签
<% %>:用于包含Js代码,这些代码将在渲染数据时被执行。
<%= %>:用于输出数据,可以是一个变量、对象的属性、或函数(输出函数的返回值)。
<%- %>:用于输出数据,同时会将数据中包含的HTML字符转换为实体形式(例如它会将双引号转换为"形式),用于避免XSS攻击。
当我们希望将数据中的HTML作为文本显示出来时,可以使用<%- %>标签。
Underscore还允许你修改这3种标签的形式,如果我们想使用{% %}、{%= %}、{%- %}作为标签,可以通过修改templateSettings来实现
此方法还可以用于解决和其它模板语言的标签冲突
示例:
模板:
调用代码
<% %>:用于包含Js代码,这些代码将在渲染数据时被执行。
<%= %>:用于输出数据,可以是一个变量、对象的属性、或函数(输出函数的返回值)。
<%- %>:用于输出数据,同时会将数据中包含的HTML字符转换为实体形式(例如它会将双引号转换为"形式),用于避免XSS攻击。
当我们希望将数据中的HTML作为文本显示出来时,可以使用<%- %>标签。
Underscore还允许你修改这3种标签的形式,如果我们想使用{% %}、{%= %}、{%- %}作为标签,可以通过修改templateSettings来实现
_.templateSettings = { evaluate : /\{%([\s\S]+?)\%\}/g, interpolate : /\{%=([\s\S]+?)\%\}/g, escape : /\{%-([\s\S]+?)%\}/g }
此方法还可以用于解决和其它模板语言的标签冲突
示例:
模板:
<script type="text/template" id="tpl"> <div>{%=say%}</div> </script>
调用代码
var data = {}; data.say = "Hello World!"; $("body").html(_.template($("#tpl").html(),data));
相关文章推荐
- Django模板中的关闭和开启HTML自动转义,解析
- 1kb的前端HTML模板解析引擎,不限于嵌套、循环、函数你能想到的解析方式
- Django模板中的关闭和开启HTML自动转义,解析
- django使用html模板减少代码代码解析
- DEDECMS教程:织梦栏目更新HTML出现“模板文件不存在,无法解析文档”的解决方法(转)
- 解析html代码
- 解析html网页及下载连接
- 用XPath对Html进行解析
- [正则表达式] 可以解析HTML/XHTML页面的所有元素和结构的Regular Expression![ZT]
- 运用SgmlReader类来解析HTML文件,并生成格式规范(well-formed)的HTML。
- 一个解析Window控件Font属性到HTML的函数
- 关于FireFox和IE对HTML解析过程差异性的考虑
- xpath解析html的原码
- 解析Html页面:HTML Parser的试用
- IE Bug 1 - 错误识别出现在javascript脚本中的字符串,导致HTML标签解析错误
- XML与ASP简单结合实现HTML模板功能
- 让XSLT直接解析出XML里的Html标签
- 通过模板生成静态html页面示例
- XML与ASP简单结合实现HTML模板功能
- ASP.NET中用户输入文本的HTML解析办法(转载)