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

如何将EJS中带function(pizza)的循环代码转换为等效的hbs实现代码

EJS遍历参数功能的Handlebars实现方案

你写的{{#each}}基础遍历结构是正确的,要实现EJS中function(pizza)的参数获取功能,有两种常用实现方式:

  • 方式一:使用默认上下文对象this
    在{{#each pizzas}}块内部,this就对应当前遍历到的单个pizza对象,和EJS里的pizza参数作用完全一致。示例代码如下:
{{#each pizzas}}
<!-- 此处为HTML代码,调用pizza属性直接用{{this.属性名}}即可 -->
<p>披萨名称:{{this.name}}</p>
<p>售价:{{this.price}} 元</p>
{{/each}}
  • 方式二:自定义变量别名(和EJS写法完全对齐)
    如果你不想用this,希望直接使用pizza作为变量名,Handlebars 3.0及以上版本支持as语法自定义遍历项别名,写法如下:
{{#each pizzas as |pizza|}}
<!-- 此处的pizza和EJS中function(pizza)的参数完全等价 -->
<p>披萨名称:{{pizza.name}}</p>
<p>售价:{{pizza.price}} 元</p>
{{/each}}

如果需要同时获取遍历索引,和EJS的function(pizza, index)对应,直接扩展别名即可:

{{#each pizzas as |pizza index|}}
<p>第{{index + 1}}款披萨:{{pizza.name}}</p>
{{/each}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:39:02