J'ai un modèle Handlebars qui est rendu à l'aide d'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 de Handlebars.
javascript
templates
handlebars.js
Abhidev
la source
la source
Dans ce cas, vous devez référencer la variable parente de chacun à partir de chaque bloc:
Je pense que votre variable nommée "array" confond probablement également le problème. Supposons un JSON différent juste pour clarifier:
var json = { "fruit":["apple","orange","banana"] };
Alors faites 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>
la source
apple 0 3
orange 1 3
banana 2 3
Vous pouvez définir un assistant simple pour le gérer:
Handlebars.registerHelper('get_length', function (obj) { return obj.length; });
Et puis utilisez-le dans votre modèle, par exemple:
la source
Si vous testez une liste vide afin d'afficher du contenu ... Dans Ember.js qui utilise des guidons, vous pouvez avoir un autre pour le #each.
{{#each blah as |blah|}} {{else}} // If array is empty {{/each}}
la source