这是javascript模板管理的理想方式吗?

时间:2011-10-17 07:04:52

标签: javascript template-engine

为了管理我的模板(在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

获取

1 个答案:

答案 0 :(得分:0)

我已经在IE 7.0,8.0,Chrome,FireFox,Safari和Opera中进行了测试。

只有IE会导致一些问题,因为它会压缩您尝试附加到innerHTML的html文本。它删除了主要评论。它需要更多的努力才能使它在IE中运行,但除此之外一切都很好。

您可以在这里查看http://jspopisno1.github.com/Beard