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

Handlebars自定义if_eq助手调用JSON数据返回空段落问题

问题解决:Handlebars自定义if_eq助手块内无法访问JSON数据

问题原因

你的自定义if_eq助手在调用options.fn(this)和options.inverse(this)时,this指向的是助手注册时的上下文(而非模板渲染用的JSON payload),导致块内的rawSource等变量无法匹配到对应数据,最终输出空段落。而Handlebars自带的条件助手会自动处理上下文传递逻辑,因此能正常加载payload数据。

修复方案

修改if_eq助手的实现,将正确的数据上下文传递给options.fn和options.inverse,推荐使用options.data.root获取全局payload数据:

handlebars.registerHelper('if_eq', (p, q, options) => {
  // 传递全局数据上下文,确保块内变量能正确读取payload内容
  return p == q ? options.fn(options.data.root) : options.inverse(options.data.root)
})

如果是嵌套模板场景,也可以用options.contexts[0]获取当前层级的上下文:

handlebars.registerHelper('if_eq', (p, q, options) => {
  return p == q ? options.fn(options.contexts[0]) : options.inverse(options.contexts[0])
})

验证说明

修改后,当rawSource.isBackup等于"YES"时,块内的{{ rawSource.L_backupLocation }}和{{ rawSource.backupLocation }}就能正确读取JSON payload中的数据,不会再输出空段落。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:50:34