2017-05-02 29 views
0

J'ai besoin de convertir la liste de sélection Jade qui itère sur les statuts et affecte un statut à un compte dans le modèle Handlebars. Dans Jade, il ressemble à ceci:Remplacement de Jade par ... en boucle avec les poignées

select.form-control(name='status') 
    option(value='') -- choose -- 
    for status in data.statuses 
     option(value='#{status._id}') #{status.name} 

J'ai essayé de le faire avec #each comme celui-ci

<select name="status" class="form-control"> 
    <option value="">-- choose --</option> 
    {{#each statuses}} 
    <option value="{{this._id}}">{{this.name}}</option> 
    {{/each}} 
</select> 

mais il ne fonctionne pas parce qu'il est pas un tableau.

Y a-t-il un moyen de faire cela avec les guidons? Je vous remercie.

+0

Avez-vous lu cette question: http://stackoverflow.com/questions/9058774/handlebars-mustache-is-there-a-built-in-way-to-loop-through-the-properties-of? –

+0

@ Иван Емельянов oui J'ai fait un tri dans '{{#each statuses}} { {/ chaque}} '. Ça n'a pas marché. – ASem

+0

Je ne trouve pas beaucoup de cas d'utilisation particulière pour '@ key' – ASem

Répondre

1

Vous pouvez voir cet exemple:

http://jsfiddle.net/bby5ynuw/

var source = $("#some-template").html(); 
var template = Handlebars.compile(source); 

var data = { 
    statuses:[ 
    {_id:1, name:'name1'}, 
    {_id:2, name:'name2'} 
    ], 
    statuses2:{ 
    o1:{_id:1, name:'name1'}, 
    o2:{_id:2, name:'name2'}, 
    o3:{_id:3, name:'name3'} 
    } 
}; 

$('body').append(template(data)); 

Les deux variantes (tableaux et d'objets) fonctionnent correctement avec votre modèle. Peut-être que vous définissez des statuts dans les guidons incorrects?