如何生成不同车把部分的列表?

时间:2016-05-31 20:48:46

标签: html arrays handlebars.js assemble

我使用带有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}}

有没有办法做到这一点?或任何其他方式来达到预期的结果?

2 个答案:

答案 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}}