Nic*_*nas 29 javascript template-engine node.js mustache
我正在尝试模板模板,如下所示:
{{{
{
"name" : "{{name}}",
"description" : "{{description}}"
}
}}}
{{{debug this}}}
Run Code Online (Sandbox Code Playgroud)
<h1>{{name}}</h1>
Run Code Online (Sandbox Code Playgroud)
我希望三个括号留在哪里,但是用传入的JSON代替双括号.任何人都知道在没有编写后处理JS代码的情况下执行此操作的最佳方法,如果没有,是否有一个很好的nodeJS模板引擎场景类型?
tmu*_*sch 68
如本问题所述,把手不支持更改分隔符.但你可以用这样的反斜杠来逃避双括号:
HTML:
... \{{ myHandlbarsVar }} ...
Run Code Online (Sandbox Code Playgroud)
bob*_*cow 43
您可以将分隔符切换为不会与三重胡须相冲突的内容,例如erb样式标记:
{{=<% %>=}}
{{{
{
"name": "<% name %>",
"description": "<% description %>"
}
}}}
{{{debug this}}}
<%={{ }}=%>
Run Code Online (Sandbox Code Playgroud)
请注意,您可以在整个模板中多次执行此操作.任何时候遇到冲突的东西,选择一组新的分隔符:)
Chr*_*all 13
您也可以Mustache.tags = ["[[", "]]"];在模板编译之前进行分配.
http://jsfiddle.net/fhwe4o8k/1/
例如
$(function () {
Mustache.tags = ["[[", "]]"];
var template = $('#test').html();
Mustache.parse(template);
var rendered = Mustache.render(template, {test: "Chris"});
$('#content-placeholder').html(rendered);
});
Run Code Online (Sandbox Code Playgroud)
另一个选项是创建一个帮助器来输出大括号.
Handlebars.registerHelper('curly', function(object, open) {
return open ? '{' : '}';
});
Run Code Online (Sandbox Code Playgroud)
然后在模板中使用它,如下所示:
<script id="template" type="text/x-handlebars-template">
{{curly true}}{{name}}{{curly}}
</script>
Run Code Online (Sandbox Code Playgroud)
然后输出:
{Stack Over Flow Rocks}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32750 次 |
| 最近记录: |