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

如何通过字符串变量动态访问Handlebars中的变量?

问题:通过字符串变量名访问Handlebars模板中的内部变量

我正在开发使用Handlebars模板存储内部变量的HTML代码,对Handlebars不太熟悉,表述若有错误请见谅。我的需求是:有大量需要通过Handlebars访问的变量,希望借助存储所有变量名的字符串数组来实现访问。

原本我可以硬编码逐个编写,例如:
A = {{variable0}}; B = {{variable1}}
以此类推直到variablen。但我想通过循环来完成这个操作,类似如下代码:

for (var i = 0; i <  n; i++) {
   result[i] = 'variable' + i
}
A = {{result[0]}};
B = {{result[1]}};

我原本期望{{result[0]}}能和{{variable0}}等价,但实际并非如此。请问是否有办法通过存储在变量中的字符串实现该需求?

解决方案

Handlebars本身不支持直接通过字符串变量名访问上下文属性,你可以通过自定义Helper来实现这个功能:

  1. 注册自定义Helper
    在JavaScript中注册一个getVar Helper,用于根据字符串键名获取对应变量:
Handlebars.registerHelper('getVar', function(varName) {
  return this[varName];
});
  1. 在模板中使用Helper
    假设存储变量名的数组result已传入模板上下文,你可以这样调用Helper来访问变量:
A = {{getVar result.[0]}};
B = {{getVar result.[1]}};

如果需要批量生成赋值语句,还可以结合Handlebars的#each循环遍历变量名数组:

{{#each result}}
  var {{this}} = {{getVar this}};
{{/each}}

这样就能通过字符串数组里的变量名,动态获取对应的Handlebars变量值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:55:09