Handlebars模板中lneitmbudgetsubTypeID值无法渲染的问题求助
问题排查:Handlebars模板隐藏输入框值未渲染
核心问题是字段名大小写不匹配:
- 模板中隐藏输入框使用的变量是
{{lneitmbudgetsubTypeID}}(注意subType里的T为大写) - 但在JS的
data对象中,对应的属性是lneitmbudgetsubtypeID(subtype里的t为小写)
Handlebars对变量名大小写严格敏感,因此模板无法匹配到对应的值,导致输入框value为空。
修正方法
只需将两边的字段名统一即可,两种方式任选其一:
方式1:修改JS的data对象属性名(和模板匹配)
let data = { lneitmbudgetsubTypeID: lneitmbudgetsubtypeID, // 将subtype改为subType lneitmbudgettypeDesc: lneitmbudgettypeDesc, lneitmbudgetAmount: lneitmbudgetAmount, lneitmbudgetCurrency: lneitmbudgetCurrency, lneitmbudgetCurrencyAmount : lneitmbudgetCurrencyAmount, lneitmbudgetCurrencyDesc: lneitmbudgetCurrencyDesc };
方式2:修改模板中的变量名(和data对象匹配)
将模板里的{{lneitmbudgetsubTypeID}}替换为{{lneitmbudgetsubtypeID}}:
<input type="hidden" id="lneitmbudgetsubTypeID[]" name="lneitmbudgetsubTypeID[]" value="{{lneitmbudgetsubtypeID}}">
新手提示
JavaScript对象属性名、Handlebars变量名均区分大小写,这类拼写/大小写不一致的小错误很容易被忽略,调试时可以直接对比模板变量和data对象的属性名,确保完全一致。
内容的提问来源于stack exchange,提问作者Diwani Hime
相关产品推荐
相关产品推荐

