2016-07-20 9 views
0

配列リテラルに対して反復処理を行うことは可能ですか?私のようなので、{arr: ["a", "b", "c"]}でJSONを持っていた場合配列リテラルを反復する

私がするだろう:私はほこりテンプレートで定義する配列でこれを行う方法は

{#arr} 
.... 
{/arr} 

ありますか?おそらく、次のようなものがあります。

私はそれが正しい構文ではないことを知っていますが、うまくいけば私がしようとしていることがわかります。

答えて

1

ダストには、この言語機能がネイティブに含まれていません。そのため、あなたの文脈にヘルパーを書くことができ、ダストに新しい機能を追加するためのグローバル機能として書くことができます。

ここでは、アイテムのリストを反復する基本的なヘルパーがあります。エラーチェックや何もありませんが、それは出発点です。

dust.helpers.iterate = function(chunk, context, bodies, params) { 
    var items = params.items.split(','); 
    return chunk.section(items, context, bodies, params); 
} 

次に、あなたのテンプレートでそれを使用します。

{@iterate items="ab,cd,ef,12"} 
    Item: {.}{~n} 
{/iterate} 

あなたは、単一のコンテキストでこれを使用している場合は、あなたにもあなたのダストコンテキストに直接ヘルパーを配置し、{#iterate}のようにそれらを呼び出すことができます。