Heim > Fragen und Antworten > Hauptteil
Ich habe eine Tabelle mit einer Lenkervorlage. Die #each
,在下一行中声明了标记,在最后一行中完成了#each
-Abschlussdeklaration wird in der ersten Zeile der Tabelle deklariert.
<table style="border-collapse: collapse; width: 100%;" border="1"><colgroup><col><col><col><col></colgroup> <thead> <tr> <th>Name</th> <th>Price</th> <th>Quantity</th> <th>Total</th> </tr> </thead> <tbody> <tr> <td colspan="4">{{#each itemList}}</td> </tr> <tr> <td>{{name}}</td> <td>{{price}}</td> <td>{{qty}}</td> <td>{{total}}</td> </tr> <tr> <td colspan="4">{{/each}}</td> </tr> </tbody> </table>
Nachdem die kompilierte Vorlage ausgeführt wurde, sieht die generierte Ausgabe wie unten dargestellt aus. In der Tabelle, in der jede Zeile definiert ist, werden die erste und die letzte Zeile nicht gelöscht. Gibt es eine Möglichkeit, es zu entfernen?
<table style="border-collapse: collapse; width: 100%;" border="1" data-mce-style="border-collapse: collapse; width: 100%;"> <colgroup> <col> <col> <col> <col> </colgroup> <thead> <tr> <th>a</th> <th>c</th> <th>v</th> <th>d</th> </tr> </thead> <tbody> <tr> <td colspan="4"> <tr> <td>12</td> <td>3</td> <td>2</td> <td>2</td> </tr> <tr> <td colspan="4"></td> </tr> </td> </tr> </tbody> </table>
P粉0119126402023-09-11 11:07:02
我不确定您为什么要包装 #each
调用,如
。这将产生完全损坏的 HTML。{{#each itemList}}
您希望 itemList
中的每个项目都有一个行
由 ,因此您需要确保行标记 < code> 和 #each
包含,并且每个的外部的任何标记都是有效且封闭的 :
const template = Handlebars.compile(`
<table style="border-collapse: collapse; width: 100%;" border="1"> <colgroup><col><col><col><col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Price</th>
<th>Quantity</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="4"></td>
</tr>
{{#each itemList}}
<tr>
<td>{{name}}</td>
<td>{{price}}</td>
<td>{{qty}}</td>
<td>{{total}}</td>
</tr>
{{/each}}
<tr>
<td colspan="4"></td>
</tr>
</tbody>
</table>
`);
const data = {
itemList: [
{
name: 'One',
price: 1,
qty: 1,
total: 1
},
{
name: 'Two',
price: 2,
qty: 2,
total: 4
}
]
};
const output = template(data);
document.body.innerHTML = output;
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.7/handlebars.min.js"></script>