Ответ 1
Мой плохой...
{{array.length}}
действительно работал внутри шаблона. Должен был проверить/проверить его перед отправкой здесь.
У меня есть шаблон Handlebars, который создается с помощью json-объекта. В этом json я посылаю массив. Вот так:
var json = {
"array":["abc","def","ghi","jkl"]
}
Теперь в моем шаблоне я хочу найти длину этого массива. Что-то вроде:
{{#each item}}
{{ array.length }}
{{/each}}
Не удалось найти его в документации Handlebars.
Мой плохой...
{{array.length}}
действительно работал внутри шаблона. Должен был проверить/проверить его перед отправкой здесь.
В этом случае вам нужно ссылаться на родительскую переменную из каждого из каждого блока:
{{#each array}}
{{../array.length}}
{{/each}}
Я думаю, что ваша переменная, называемая "array", вероятно, также ассоциирует проблему. Предположим, что некоторые 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>
Вы можете определить простой помощник для его обработки:
Handlebars.registerHelper('get_length', function (obj) {
return obj.length;
});
И затем используйте его в своем шаблоне, например:
{{get_length some_object}}
попробуйте следующее:
{{#each item}}
{{ json.array.length }}
{{/each}}
Если вы тестируете пустой список для отображения содержимого... В Ember.js, который использует рули, у вас может быть другое для #each.
{{#each blah as |blah|}}
{{else}}
// If array is empty
{{/each}}