Handlebars中访问数组获取最新用户数据失败,求解决方案
问题原因及解决方法
原代码输出N/A的核心原因:
- 你用了
{{#each data}},但data是单个对象而非数组,遍历过程中this指向的是data的子属性customer,此时this.customer根本不存在,自然无法获取到目标值。 - 就算忽略遍历的问题,原写法的索引访问逻辑也会因上下文错误无法执行。
正确实现方式
方案1:直接访问(最简洁)
因为data是单个对象,不需要遍历,直接通过属性链访问即可:
{{customer.name.[customer.users]}}
如果你的用户对象包含具体属性(比如name),要打印具体内容需补充属性名,示例:
{{customer.name.[customer.users].name}}
(注:你定义的{ user 1 }是无效JS对象,需改成{ name: 'user 1' }这类合法格式才能正常访问)
方案2:若需遍历(仅适用于data为数组的场景)
如果后续data变为包含多个客户对象的数组,比如:
const data = [ { customer:{ name:[{ name: 'user 1' },{ name: 'user 2' },{ name: 'user 3' }], users : 2 } }, // 其他客户对象 ]
模板可改为:
{{#each data}} {{this.customer.name.[this.customer.users].name}} {{/each}}
内容的提问来源于stack exchange,提问作者Anthony13th
相关产品推荐
相关产品推荐

