У меня есть шаблон Handlebars, который отображается с использованием объекта json. В этом json я отправляю массив. Как это:
var json = {
"array":["abc","def","ghi","jkl"]
}
Теперь в моем шаблоне я хочу найти длину этого массива. Что-то типа:
{{#each item}}
{{ array.length }}
{{/each}}
Не удалось найти в документации по Handlebars.
javascript
templates
handlebars.js
Абхидев
источник
источник
В этом случае вам нужно ссылаться на родительскую переменную каждого из каждого блока:
Я думаю, что ваша переменная с именем «массив», вероятно, также объединяет проблему. Давайте предположим какой-то другой JSON, чтобы уточнить:
var json = { "fruit":["apple","orange","banana"] };
Итак, сделаем это:
<ul> {{#each fruit}} <li>{{this}} {{@index}} {{../fruit.length}}</li> {{/each}} </ul>
Дала бы:
<ul> <li>apple 0 3</li> <li>orange 1 3</li> <li>banana 2 3</li> </ul>
источник
apple 0 3
orange 1 3
banana 2 3
Вы можете определить простой помощник для его обработки:
Handlebars.registerHelper('get_length', function (obj) { return obj.length; });
А затем используйте его в своем шаблоне, например:
источник
Если вы тестируете пустой список для отображения содержимого ... В Ember.js, который использует ручки, вы можете использовать else для #each.
{{#each blah as |blah|}} {{else}} // If array is empty {{/each}}
источник