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

Handlebars表格渲染冗余行问题:如何移除多余首尾行?

解决Handlebars表格冗余行问题

你之前的写法错误地把{{#each itemList}}和{{/each}}放在了单独的<tr><td>标签里,这些行被Handlebars当作静态HTML保留,所以编译后出现冗余。正确的做法是把each块直接包裹需要循环渲染的数据行,不需要额外的行来放置each语法:

错误写法示例

<table>
  <tbody>
    <!-- 这两行会变成冗余行 -->
    <tr><td>{{#each itemList}}</td></tr>
    <tr>
      <td>{{name}}</td>
      <td>{{value}}</td>
    </tr>
    <tr><td>{{/each}}</td></tr>
  </tbody>
</table>

正确写法

<table>
  <tbody>
    <!-- 直接用each包裹数据行 -->
    {{#each itemList}}
    <tr>
      <td>{{name}}</td>
      <td>{{value}}</td>
    </tr>
    {{/each}}
  </tbody>
</table>

如果需要表头,把表头放在<thead>标签中,和<tbody>分离,结构更清晰:

<table>
  <thead>
    <tr>
      <th>名称</th>
      <th>值</th>
    </tr>
  </thead>
  <tbody>
    {{#each itemList}}
    <tr>
      <td>{{name}}</td>
      <td>{{value}}</td>
    </tr>
    {{/each}}
  </tbody>
</table>

核心逻辑是:Handlebars的块级助手(如each)需要直接包裹要重复渲染的DOM元素,不能将助手的起始/结束标签放在独立的表格行内,否则这些行会被视为静态内容保留,导致冗余。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:44:57