在 Mustache 模板中的 {{# ... }} 之前放置一个大括号
Place a brace just before {{# ... }} in Mustache templates
我想在 {{# .. }} 表达式之前放置一个大括号 Mustache 表达式。我怎样才能做到这一点?
例如,对于这些输入:
输入 1
哈希:
{
"things": []
}
输出:
<pre>
{}
</pre>
输入 2
哈希:
{
"things": [
{ "name": "thing1" },
{ "name": "thing2" },
]
}
输出:
<pre>
{
listOfThings: [
"thing1",
"thing2",
]
}
</pre>
为了保持简单性,该示例有点合成。
我最初的想法没有奏效:
<pre>
\{{{#things}}
{{name}}
{{/things}}\}
</pre>
创建一个助手来输出大括号。
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)
我会在输出中使用 HTML Entities 作为所需的文字大括号。您的示例模板将变为以下内容:
<pre>
{{{#things}}
{{name}}
{{/things}}}
</pre>
但是,我想指出,此模板不会产生您问题中所述的所需输出。为此,您需要如下内容:
<pre>
{
listOfThings: [
{{#each things}}
"{{name}}",
{{/each}}
]
}
</pre>
我创建了一个fiddle供您参考。
我想在 {{# .. }} 表达式之前放置一个大括号 Mustache 表达式。我怎样才能做到这一点? 例如,对于这些输入:
输入 1
哈希:
{
"things": []
}
输出:
<pre>
{}
</pre>
输入 2
哈希:
{
"things": [
{ "name": "thing1" },
{ "name": "thing2" },
]
}
输出:
<pre>
{
listOfThings: [
"thing1",
"thing2",
]
}
</pre>
为了保持简单性,该示例有点合成。
我最初的想法没有奏效:
<pre>
\{{{#things}}
{{name}}
{{/things}}\}
</pre>
创建一个助手来输出大括号。
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)
我会在输出中使用 HTML Entities 作为所需的文字大括号。您的示例模板将变为以下内容:
<pre>
{{{#things}}
{{name}}
{{/things}}}
</pre>
但是,我想指出,此模板不会产生您问题中所述的所需输出。为此,您需要如下内容:
<pre>
{
listOfThings: [
{{#each things}}
"{{name}}",
{{/each}}
]
}
</pre>
我创建了一个fiddle供您参考。