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
相关产品推荐
相关产品推荐

