2
提前感謝您花時間嘗試提供幫助。我在node.js中使用Jade模板引擎,並且想要生成一個分組爲行的HTML表格(tbody標籤)。如何用Jade生成一個表格?
比方說,我有以下對象存儲:
[
{ type: 'Fruit', name: 'Apple' }
, { type: 'Fruit', name: 'Orange' }
, { type: 'Vegetable', name: 'Carrot' }
, { type: 'Vegetable', name: 'Spinach'}
]
(爲簡單起見,我們假設數組是預先排序的「類型」列)。
我想爲每個「類型」(水果蔬菜)的tbody部分內的每個對象生成一個表格。所以我想生成HTML是:
<table>
<thead>
<th>Type</th>
<th>Name</th>
</thead>
<tbody id="Fruit">
<tr>
<td>Fruit</td>
<td>Apple</td>
</tr>
<tr>
<td>Fruit</td>
<td>Orange</td>
</tr>
</tbody>
<tbody id="Vegetable">
<tr>
<td>Vegetable</td>
<td>Carrot</td>
</tr>
<tr>
<td>Vegetable</td>
<td>Spinach</td>
</tr>
</tbody>
</table>
我想我會想我的玉看起來是這樣的:
table
thead
th Type
th Name
- var lastType;
each o in objs
- if(o.type != lastType)
tbody(id='#{o.type}')
- lastType = o.type;
tr
td #{o.type}
td #{o.name}
但是,這產生:
<table>
<thead>
<th>Type</th>
<th>Name</th>
</thead>
<tbody id="Fruit" />
<tbody>
<tr>
<td>Fruit</td>
<td>Apple</td>
</tr>
<tr>
<td>Fruit</td>
<td>Orange</td>
</tr>
</tbody>
<tbody id="Vegetable" />
<tbody>
<tr>
<td>Vegetable</td>
<td>Carrot</td>
</tr>
<tr>
<td>Vegetable</td>
<td>Spinach</td>
</tr>
</tbody>
</table>
任何想法?
該解決方案並沒有爲我工作 - 這只是輸出每節的第一行。這是因爲'tr'和'td'的生成嵌套在條件'(if o.type!= lastType)'的下面,因此我最初把它放在條件之外。 –
請嘗試我的更新。 – ztirom
Gotcha - 所以我必須做雙迭代。這工作,但不是超高效。 –