我想在{{#..}}表达式之前放置一个大括号表达式。我怎样才能做到这一点? 例如,对于这些输入:
哈希:
{
"things": []
}
输出:
<pre>
{}
</pre>
哈希:
{
"things": [
{ "name": "thing1" },
{ "name": "thing2" },
]
}
输出:
<pre>
{
listOfThings: [
"thing1",
"thing2",
]
}
</pre>
这个例子有点合成,以保持简洁。
我最初的想法并不奏效:
<pre>
\{{{#things}}
{{name}}
{{/things}}\}
</pre>
答案 0 :(得分:1)
创建一个帮助器来输出大括号。
Handlebars.registerHelper('curly', function(object, open) {
return open ? '{' : '}';
});
您可以按照以下方式使用它。
<script id="template" type="text/x-handlebars-template">
{{curly true}}{{name}}{{curly}}
</script>
如果您将{true}传递给curly
,则会显示左括号。否则,它将显示结束括号。
输出如下。
{Stack Over Flow Rocks}
回复Escape double braces {{ ... }} in Mustache template. (templating a template in NodeJS)
的学分答案 1 :(得分:1)
我会在输出中使用HTML Entities作为所需的文字花括号。您的示例模板将变为以下内容:
<pre>
{{{#things}}
{{name}}
{{/things}}}
</pre>
但是,我想指出,此模板不会产生您问题中所述的所需输出。为此,您需要以下内容:
<pre>
{
listOfThings: [
{{#each things}}
"{{name}}",
{{/each}}
]
}
</pre>
我创建了一个fiddle供您参考。