我需要使用ng-repeat
(在AngularJS)列出所有在數組中的元素的。如何使用NG-不重複的HTML元素
的複雜性在於,陣列中的每個元素將變換到一個表中的任何一個,兩個或三個行。
我不能創建有效的HTML,如果ng-repeat
使用的元件上,因爲沒有類型的重複元件的被允許<tbody>
和<tr>
之間。
例如,如果我用<span>
NG重複,我會得到:
<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>
其中第一行已經由第一個數組元素中產生,接下來的三個第二和第五和第六的最後一個數組元素。
如何使用NG-重複這樣的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>
也許你應該使用「replace:true」?看到這個:http:// stackoverflow。com/questions/11426114/angularjs-why-doesnt-replace-true-work-with-templateurl-property – Tommy 2012-07-15 11:40:01
此外,爲什麼你不能在tr本身上使用ng-repeat? – Tommy 2012-07-15 12:55:20
@Tommy,因爲「數組的每個元素將轉換爲表的一個,兩個或三個行」。據我所知,如果我在'tr'上使用了ng-repeat,每個數組元素會得到一行。 – fadedbee 2012-07-15 13:37:27