Mam szablon Handlebars, który jest renderowany przy użyciu obiektu JSON. W tym jsonie wysyłam tablicę. Lubię to:
var json = {
"array":["abc","def","ghi","jkl"]
}
Teraz w moim szablonie chcę znaleźć długość tej tablicy. Coś jak:
{{#each item}}
{{ array.length }}
{{/each}}
Nie można go znaleźć w dokumentacji kierownic.
javascript
templates
handlebars.js
Abhidev
źródło
źródło
W takim przypadku musisz odwołać się do zmiennej nadrzędnej każdego z każdego bloku:
Wydaje mi się, że nazwa zmiennej „tablica” prawdopodobnie również komplikuje problem. Załóżmy, że dla wyjaśnienia jest jakiś inny JSON:
var json = { "fruit":["apple","orange","banana"] };
Więc robiąc to:
<ul> {{#each fruit}} <li>{{this}} {{@index}} {{../fruit.length}}</li> {{/each}} </ul>
Dałoby:
<ul> <li>apple 0 3</li> <li>orange 1 3</li> <li>banana 2 3</li> </ul>
źródło
apple 0 3
orange 1 3
banana 2 3
Możesz zdefiniować prostego pomocnika do obsługi tego:
Handlebars.registerHelper('get_length', function (obj) { return obj.length; });
A potem użyj go w swoim szablonie np:
źródło
Jeśli testujesz pustą listę, aby wyświetlić zawartość ... W Ember.js, który używa kierownicy, możesz mieć inny dla #each.
{{#each blah as |blah|}} {{else}} // If array is empty {{/each}}
źródło