You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Handlebars each循环内如何访问不同作用域的上下文变量

问题原因

你模板里拿不到值的核心原因有两个:

  1. 你传入的entry是entryResult.records,本身是一个数组,直接对数组调用.UnitPrice肯定无法拿到属性值
  2. 你提到的{{../entry/UnitPrice}}斜杠写法不符合Handlebars的属性访问规范,正确的属性分隔符是点.或方括号[]

解决方法

根据你的实际业务场景二选一即可:

  • 如果你要的是entry数组和prod数组按索引一一对应取值,比如第1条prod对应第1条entry的单价,可以借助Handlebars的@index内置变量和lookup工具方法实现,模板部分修改为:
{{#each prod}}
<tr>
    <td><input type="checkbox" value="{{Id}}"></td>
    <td>{{Name}}</td>
    <td>{{lookup (lookup ../entry @index) 'UnitPrice'}}</td>
</tr>
{{/each}}
  • 如果你的entry实际只需要取单个对象的UnitPrice,可以先在渲染前的JS代码里把entry处理成单个对象,比如取数组第一条:
context = {
  prod : prodResult.records,
  // 这里直接取你需要的单条entry记录,不要直接赋值数组
  entry : entryResult.records[0],
  ts : prodResult.totalSize
}
res.render('prodlist', context)

修改后你原来的{{../entry.UnitPrice}}写法就可以正常取值。


内容的提问来源于stack exchange,提问作者MBsola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:00:01