2016-07-20 16 views
0

Ist es in Staub möglich, über ein Array-Literal zu iterieren?Iterieren über Array Literal

Wenn ich JSON habe mit wie so {arr: ["a", "b", "c"]} würde ich tun:

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

Gibt es eine Möglichkeit, dies ich mit einer Reihe zu tun, in der Staub-Vorlage definieren? Vielleicht etwas wie:

Ich weiß, das ist nicht die richtige Syntax, aber es zeigt hoffentlich, was ich versuche zu tun.

Antwort

1

Staub enthält diese Sprachenfunktionalität nicht nativ. Deshalb können Sie Helfer in Ihrem Kontext oder als globale Funktionen schreiben, um neue Funktionen zu Dust hinzuzufügen.

Hier ist ein grundlegender Helfer, der über eine Liste von Elementen iteriert. Es gibt keine Fehlerüberprüfung oder irgendetwas, aber es ist ein Ausgangspunkt.

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

Dann verwenden Sie es in der Vorlage:

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

Wenn Sie dies in einem einzigen Kontext verwenden, können Sie Helfer direkt in Ihren Staub Kontext stellen als auch, und rufen sie wie {#iterate}.