#javascript #template-engine
#javascript #механизм шаблонов
Вопрос:
Для управления моими шаблонами (в mustache.js ) Я написал библиотеку, чтобы помочь. Например,
<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
Дело в том, что я не уверен, что это через <!— —> чтобы избежать шаблона текста безопасным способом? скажем, я тестирую библиотеку только в firefox, Chrome и IE. Все они хороши, но есть ли какие-либо другие потенциальные проблемы с другим браузером, скажем, Opera?
Если вы хотите, чтобы код тестировался в другом браузере, вы можете получить его из https://github.com/jspopisno1/Beard
Ответ №1:
Я тестировал в IE 7.0, 8.0, Chrome, FireFox, Safari и Opera.
Только IE вызовет некоторые проблемы, потому что он будет сжимать html-текст, который вы пытаетесь добавить к innerHTML. Это удаляет ведущие комментарии. Требуется еще немного усилий, чтобы заставить его работать в IE, но помимо этого все в порядке.
Вы можете посмотреть здесь http://jspopisno1.github.com/Beard