J'ai un modèle de guidon qui est rendu en utilisant un objet JSON. Dans ce Json, j'envoie un tableau. Comme ça:
var json = {
"array":["abc","def","ghi","jkl"]
}
Maintenant, dans mon modèle, je veux trouver la longueur de ce tableau. Quelque chose comme:
{{#each item}}
{{ array.length }}
{{/each}}
Impossible de le trouver dans la documentation du guidon.
Ma faute....
{{array.length}}
a réellement travaillé à l'intérieur du modèle. Devrait avoir vérifié/testé avant de le poster ici.
Dans ce cas, vous devez référencer la variable parent de chaque élément dans chaque bloc:
{{#each array}}
{{../array.length}}
{{/each}}
Je pense que votre variable nommée "array" est probablement en train de confondre le problème. Supposons quelques JSON différents pour clarifier:
var json = {
"fruit":["Apple","orange","banana"]
};
Alors alors faire ceci:
<ul>
{{#each fruit}}
<li>{{this}} {{@index}} {{../fruit.length}}</li>
{{/each}}
</ul>
Céderait:
<ul>
<li>Apple 0 3</li>
<li>orange 1 3</li>
<li>banana 2 3</li>
</ul>
Vous pouvez définir un assistant simple pour le gérer:
Handlebars.registerHelper('get_length', function (obj) {
return obj.length;
});
Et utilisez-le ensuite dans votre modèle, par exemple:
{{get_length some_object}}
Si vous testez une liste vide afin d’afficher du contenu ... Dans Ember.js, qui utilise un guidon, vous pouvez en avoir un autre pour le #each.
{{#each blah as |blah|}}
{{else}}
// If array is empty
{{/each}}
essaye ça:
{{#each item}}
{{ json.array.length }}
{{/each}}