我在项目中使用Handlebars作为模板。有没有一种方法可以获取Handlebars中"each" helper的当前迭代的索引?
<tbody>
{{#each item}}
<tr>
<td><!--HOW TO GET ARRAY INDEX HERE?--></td>
<td>{{this.key}}</td>
<td>{{this.value}}</td>
</tr>
{{/each}}
</tbody>
9条答案
按热度按时间xqk2d5yq1#
在较新版本的Handlebars中,索引(或对象迭代情况下的键)默认与标准的each helper一起提供。
摘录自:https://github.com/wycats/handlebars.js/issues/250#issuecomment-9514811
当前数组项的索引已经通过@index提供了一段时间:
对于对象迭代,请使用@key:
pvabu6sv2#
在车把3.0版本以后,
在此特定示例中,user将具有与当前上下文相同的值,并且userId将具有用于迭代的索引值。参考块帮助器部分中的-http://handlebarsjs.com/block_helpers.html
z5btuh9x3#
这在Ember的新版本中有所改变。
对于阵列:
看起来#each块不再对对象起作用。我的建议是为它滚动你自己的helper函数。
谢谢tip。
wooyq4lh4#
我知道这太晚了。我用下面的代码解决了这个问题:
Java脚本:
HTML:
如果你想以1开始索引,你应该执行以下代码:
JavaScript:
HTML:
谢谢
sbdsn5lh5#
阵列:
如果你有对象数组…你可以遍历子节点:
对象:
如果有嵌套对象,则可以使用
{{@../key}}
访问父对象的key
egmofgnx6#
在hbs中使用循环有点复杂
了解更多
sdnqo3pr7#
在车把4.0版本以后
ua4mk5z48#
bqujaahr9#
如果要以0开始索引
如果你想用1开始索引。
在JavaScript中
在HTML文件中