Можно ли получить длину объекта json внутри шаблона ручек с помощью свойства .length.
{{json.length}}
Если нет, можно найти длину на основе списка ключей, а затем с помощью .length, например {{json.keys.length}}
Пример структуры JSON
{1232134235423:[Name,Destination,Desc],
2134213214321:[Name],
2342354356634:[Name,Desc]
}
Изменить 1: Я знаю, что этого можно достичь с помощью специального помощника, но эта длина должна использоваться внутри настраиваемого помощника. Было бы полезно что-то вроде array.length
2 ответа
Если я правильно понимаю ваше редактирование, проблема не в том, чтобы использовать другого помощника, а в том, чтобы вызвать его в вызове другого помощника. Таким образом, вы можете использовать второй помощник, вложенный в ваш пользовательский вызов if-helper:
{{#customIf (objectLength json)}}
do some stuff...
{{/customIf}}
Согласно этому ответу «Получение списка ключей объектов JavaScript» вы можете использовать Object.keys(json)
для получения всех ключей вашего объекта.
Новый помощник objectLength
может выглядеть так:
Handlebars.registerHelper("len", function(json) {
return Object.keys(json).length;
});
Вы можете проверить длину объекта в шаблоне руля, как это в вашем шаблоне. Таким образом, HTML будет отображаться только тогда, когда у объекта есть один или несколько дочерних элементов.
{
people: [
"abc",
"Alan Johnson",
"Charles Jolley",
],
}
{{#if people.length}}
<p>{{ people}} </p>
<ul class="people_list">
{{#each people}}
<li>{{this}}</li>
{{/each}}
</ul>
{{/if}}
Похожие вопросы
Связанные вопросы
Новые вопросы
handlebars.js
Handlebars - это библиотека шаблонов для JavaScript.