在HBS的foreach循环中如何展示其他非遍历变量的数据
问题原因
Handlebars(hbs)的{{#each}}遍历块执行时会将当前的作用域上下文切换为正在遍历的数组项,你在each块内直接写{{num}}时,模板会默认从当前遍历的info数组的单条对象属性中查找num字段,而你的info数组项中不存在该字段,因此无法正常渲染。
解决方案
你可以通过以下两种方式访问到外层的num变量:
- 方法1:使用
@root前缀直接访问根级上下文传递的所有变量,层级嵌套较深时也不会出错,代码如下:
{{#each info as |d|}} {{d.name}} {{@root.num}} {{/each}}
- 方法2:使用
../回退到上一级上下文访问变量,适合层级简单的场景:
{{#each info as |d|}} {{d.name}} {{../num}} {{/each}}
内容的提问来源于stack exchange,提问作者Kakashi Hatake
相关产品推荐
相关产品推荐

