为了管理我的模板(在mustache.js中)我编写了一个lib来帮助。例如,
<div id='beardTemplates'>
<div data-beard='tpl1'>
<h1>Hi, {{name}}</h1>
<!-- a normal comment -->
<!--@ Hi, {{name}}, this is an escaped template text. @-->
<div data-beard='subTpl1'>sub tpl1</div>
</div>
<div data-beard='subTpl2' data-beard-path='tpl1'>
sub tpl2
</div>
</div>
// compiling the templates
Beard.load()
// after calling the load() method, the templates will be wrapped into an
// object called Btpls, like :
Btpls =>
tpl1 =>
subTpl1
subTpl2
// calling the template function
Btpls.tpl1({name: 'Liangliang'})
// output:
<h1>Hi, Liangliang</h1>
<!-- a normal comment -->
Hi, Liangliang, this is an escaped template text.
// calling the nested sub functions
Btpls.tpl1.subTpl1()
// output:
sub tpl1
我不确定的是使用&lt;! - - &gt; 以安全方式转义模板文本?说,我只测试firefox,chrome和IE下的lib。它们都很好,但是其他浏览器还有其他任何潜在的问题吗,比如Opera?
如果您希望代码在其他浏览器上进行测试,可以从https://github.com/jspopisno1/Beard
获取答案 0 :(得分:0)
我已经在IE 7.0,8.0,Chrome,FireFox,Safari和Opera中进行了测试。
只有IE会导致一些问题,因为它会压缩您尝试附加到innerHTML的html文本。它删除了主要评论。它需要更多的努力才能使它在IE中运行,但除此之外一切都很好。