Я пытаюсь указать индекс элемента в массиве в шаблоне руля:
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
используя это:
<ul id="luke_should_be_here">
{{people[1].name}}
</ul>
Если вышеописанное невозможно, как бы я написал помощника, который мог бы получить доступ к специальному элементу в массиве?
javascript
handlebars.js
lukemh
источник
источник
Expecting 'ID'
об ошибке {{user.links.websites.1}} или {{user.links.websites.0}}{{ websites.[0] }}
.Следующее, с дополнительной точкой перед индексом , работает так же, как и ожидалось. Здесь квадратные скобки являются необязательными, когда за индексом следует другое свойство:
Однако квадратные скобки требуются в:
В последнем случае использование номера индекса без квадратных скобок даст один:
Как отступление: квадратные скобки (также) используются для синтаксического литерала сегмента , чтобы ссылаться на фактические идентификаторы (не номера индекса), которые в противном случае были бы недействительными. Подробнее в разделе Что такое действительный идентификатор?
(Проверено с помощью руля в YUI.)
Обновление 2.xx
Теперь вы можете использовать
get
помощника для этого:хотя если вы получаете сообщение об ошибке, что индекс должен быть строкой, выполните:
источник
{{#with people.1}}
Решение работает для меня, используяcom.github.jknack:handlebars:4.1.2
.источник
Если недокументированные функции не являются вашей игрой, то же самое можно сделать здесь:
Тогда в шаблоне
Я написал выше, прежде чем я получил
Я не вижу, чтобы кто-то слишком далеко зашел за руль, не написав собственных помощников
источник
Если вы хотите использовать динамические переменные
Это не сработает:
Вам нужно сделать:
см Рули LookUp вспомогательные и рули подвыражения .
источник
Пожалуйста, попробуйте это, если вы хотите получить первый / последний.
источник
Пока вы зацикливаетесь на массиве,
each
и если вы хотите получить доступ к другому массиву в контексте текущего элемента, вы делаете это следующим образом.Вот пример данных.
Вот руль, чтобы получить первый элемент в
attr
массиве.Это будет выводить
источник
this
будет работать вместоthis.[0]
Следующий синтаксис также может использоваться, если массив не назван (только массив передается в шаблон):
источник
В моем случае я хотел получить доступ к массиву внутри пользовательского помощника, например,
Что не сработало, но ответ, предложенный @julesbou, сработал.
Рабочий код:
Надеюсь это поможет! Приветствия.
источник