Я использую Handlebars для шаблонов в своем проекте. Есть ли способ получить индекс текущей итерации «каждого» помощника в Handlebars?
<tbody>
{{#each item}}
<tr>
<td><!--HOW TO GET ARRAY INDEX HERE?--></td>
<td>{{this.key}}</td>
<td>{{this.value}}</td>
</tr>
{{/each}}
</tbody>
javascript
handlebars.js
thunderboltz
источник
источник
Ответы:
В более новых версиях Handlebars индекс (или ключ в случае итерации объекта) предоставляется по умолчанию со стандартом каждый помощник.
фрагмент от: https://github.com/wycats/handlebars.js/issues/250#issuecomment-9514811
Индекс текущего элемента массива уже некоторое время доступен через @index:
Для итерации объекта используйте вместо этого @key:
источник
Uncaught SyntaxError: Unexpected token ,
@index
и@first
теперь поддерживаются также для каждой итерации объектов.{{@@index}}
Uncaught SyntaxError: Unexpected token ,
Это изменилось в более новых версиях Ember.
Для массивов:
Похоже, блок #each больше не работает с объектами. Мое предложение состоит в том, чтобы накатить свою собственную вспомогательную функцию для этого.
Спасибо за этот совет .
источник
Я знаю, что это слишком поздно. Но я решил эту проблему с помощью следующего кода:
Java Script:
HTML:
если вы хотите начать свой индекс с 1, вы должны сделать следующий код:
Javascript:
HTML:
Спасибо.
источник
В версии 3.0 руля,
В этом конкретном примере пользователь будет иметь то же значение, что и текущий контекст, а userId будет иметь значение индекса для итерации. См. Http://handlebarsjs.com/block_helpers.html в разделе «Помощники блоков».
источник
Массивы:
Если у вас есть массивы объектов ... вы можете перебирать дочерние элементы:
Объекты:
Если у вас есть вложенные объекты, вы можете получить доступ к
key
родительскому объекту с помощью{{@../key}}
источник
В руле версии 4.0 и выше,
источник