我需要使用 ng-repeat
(在 AngularJS 中)来列出一个数组中的所有元素。
复杂的是,数组中的每个元素都会转换为表中的一行、两行或三行。
如果在元素上使用 ng-repeat
,我就不能创建有效的 html,因为在 <tbody>
和 <tr>
之间不允许重复元素的类型。
例如,如果我在 <span>
上使用 n- 重复,我会得到:
<table>
<tbody>
<span>
<tr>...</tr>
</span>
<span>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</span>
<span>
<tr>...</tr>
<tr>...</tr>
</span>
</tbody>
</table>
这是无效的 html。
但我需要的是:
<table>
<tbody>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
其中第一行由第一个数组元素生成,接下来的三行由第二个数组元素生成,第五行和第六行由最后一个数组元素生成。
我怎样才能使用 n- 重复这样的方式,它被绑定到的 html 元素在呈现过程中“消失”?
或者还有别的解决办法吗?
澄清: 生成的结构应该如下所示。每个数组元素可以在表的1-3行之间生成。理想情况下,答案应该支持每个数组元素0-n 行。
<table>
<tbody>
<!-- array element 0 -->
<tr>
<td>One row item</td>
</tr>
<!-- array element 1 -->
<tr>
<td>Three row item</td>
</tr>
<tr>
<td>Some product details</td>
</tr>
<tr>
<td>Customer ratings</td>
</tr>
<!-- array element 2 -->
<tr>
<td>Two row item</td>
</tr>
<tr>
<td>Full description</td>
</tr>
</tbody>
</table>