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

如何仅在Handlebars模板中定义数组并实现循环?

问题解答

Handlebars 内置的#each和#with助手没法直接实现「在模板里定义数组并循环」的需求——它的语法不支持在模板中直接解析数组字面量,你写的['Home', 'About']会被当成普通字符串,而非数组,所以循环失效。

如果不想在JS里预先定义数组再传递给模板,最实用的方案是自定义一个极简助手:

先在JS里注册助手:

Handlebars.registerHelper('array', function() {
  return Array.from(arguments).slice(0, -1);
});

然后在模板里这样用:

{{#each (array 'Home' 'About')}}
  <p>{{this}}</p>
{{/each}}

要是硬抠「只用内置助手」的话,也能通过#with结合hash模拟,但写法繁琐且不实用——本质是循环对象的属性值,不是真正的数组,示例如下:

{{#with obj=(hash item1='Home' item2='About')}}
  {{#each obj}}
    <p>{{this}}</p>
  {{/each}}
{{/with}}

这种方式需要手动给每个元素加属性名,完全没必要,还是自定义助手靠谱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:44:51