2016-05-31 3 views
1

私はassembleでhandlebars.jsを使用しています。異なるハンドルバーのパーシャルのリストを生成するにはどうすればいいですか?

Iは(svgsある)パーシャルのリストを持っている:私は配列をループしたいと異なるを生成する

アイコンwhite.hbsなど、アイコンred.hbs、 アイコンblue.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}} 

をこれを行う方法はありますか?または期待される結果を達成するための他の方法はありますか?

答えて

1

あなたはこのようassembleにヘルパーを追加することができます。私はあなたの提案の編集を見た

{{#myData}} 
    {{#each list}} 
    {{partial (icon color)}} 
    <span>{{val}}</span> 
    {{/each}} 
{{/myData}} 
+1

@anita:次に、あなたが部分的ヘルパーとハンドルバーsubexpressionsで構築を使用することができます

app.helper('icon', function(name) { return 'icon-' + name; }); 

。私の答えは、現在のバージョンのアセンブルに関するものです。 'grunt-assemble'を使用しているなら、あなたの編集の内容でそれを指定する別の答えを出すべきです(' grunt-assemble'には意味があると思います)。 – doowb

0

これは、野生の推測(私はハンドルを使用したことがありません)ですが、私は、これはJavaScriptで理にかなって思う:あなたが参加するヘル​​パーや連結変数を使用する必要がありますハンドルバーに

{{#each list}} 
    {{'icon-' + this.color}} 
    <span>{{val}}</span> 
{{/each}} 
関連する問題