我使用带有assemble的handlebars.js。
我有一个部分列表(这是svgs): icon-blue.hbs,icon-red.hbs,icon-white.hbs等
我想遍历数组并为每个索引生成不同的部分。
我的JSON中有以下内容:
"list": [
{
"color": "red",
"val": "Lorem ipsum"
},
{
"color": "blue",
"val": "Lorem ipsum"
},
{
"color": "white",
"val": "Lorem ipsum"
}
]
然后在index.hbs中我想做这样的事情:
{{#myData}}
{{#each list}}
{{> icon-{{color}} }} --> I know this isn't possible, so what can I do instead?
<span>{{val}}</span>
{{/each}}
{{/myData}}
有没有办法做到这一点?或任何其他方式来达到预期的结果?
答案 0 :(得分:1)
在手柄中,您需要使用帮助程序来连接或连接变量。
您可以像assemble
这样添加帮助:
app.helper('icon', function(name) {
return 'icon-' + name;
});
然后你可以使用内置的部分助手和把手subexpressions:
{{#myData}}
{{#each list}}
{{partial (icon color)}}
<span>{{val}}</span>
{{/each}}
{{/myData}}
答案 1 :(得分:0)
这是一个疯狂的猜测(我从来没有使用过把手),但我认为这在javascript中有意义:
{{#each list}}
{{'icon-' + this.color}}
<span>{{val}}</span>
{{/each}}