2016-05-31 13 views
1

Ich benutze lenker.js mit assemble.Wie erstelle ich eine Liste verschiedener Lenker-Teiltöne?

Ich habe eine Liste der Teiltöne (die SVGs sind): Icon-blue.hbs, Icon-red.hbs, Icon-white.hbs etc

I Schleife durch ein Array möchte und erzeugen eine unterschiedliche teilweise für jeden Index.

Ich habe folgende in meinem JSON:

"list": [ 
{ 
    "color": "red", 
    "val": "Lorem ipsum" 
}, 
{ 
    "color": "blue", 
    "val": "Lorem ipsum" 
}, 
{ 
    "color": "white", 
    "val": "Lorem ipsum" 
} 
] 

dann in index.hbs ich so etwas wie dies tun will:

{{#myData}} 
    {{#each list}} 
    {{> icon-{{color}} }} --> I know this isn't possible, so what can I do instead? 
    <span>{{val}}</span> 
    {{/each}} 
{{/myData}} 

Gibt es eine Möglichkeit, dies zu tun? oder eine andere Möglichkeit, um das erwartete Ergebnis zu erzielen?

Antwort

1

In Lenker einen Helfer müssen Sie verwenden, um Variablen beitreten oder concat .

Sie können einen Helfer zu assemble wie folgt hinzufügen: Ihre vorgeschlagenen Änderungen

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

@anita Ich sah:

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

Dann Sie die integrierten Teil Helfer und Lenker subexpressions verwenden können. Meine Antwort bezieht sich auf die aktuelle Version von assemble. Wenn du 'grunt-assemble' verwendest, solltest du eine andere Antwort geben, indem du das mit dem Inhalt deiner Edits spezifizierst (ich denke, dass es für' grunt-assemble' Sinn macht). – doowb

0

Dies ist eine wilde Vermutung (ich habe Lenker nie benutzt), aber ich denke, das Gefühl in Javascript machen würde:

{{#each list}} 
    {{'icon-' + this.color}} 
    <span>{{val}}</span> 
{{/each}}