Tôi cần sử dụng ng-repeat
(trong AngularJS) để liệt kê tất cả các phần tử trong một mảng.
Sự phức tạp là mỗi phần tử của mảng sẽ biến đổi thành một, hai hoặc ba hàng của một bảng.
Tôi không thể tạo html hợp lệ, nếu ng-repeat
được sử dụng trên một phần tử, vì không có loại phần tử lặp lại nào được phép giữa <tbody>
và <tr>
.
Ví dụ: nếu tôi sử dụng ng-repeat trên <span>
, tôi sẽ nhận được:
<table>
<tbody>
<span>
<tr>...</tr>
</span>
<span>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</span>
<span>
<tr>...</tr>
<tr>...</tr>
</span>
</tbody>
</table>
Đó là html không hợp lệ.
Nhưng những gì tôi cần được tạo ra là:
<table>
<tbody>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
trong đó hàng đầu tiên được tạo bởi phần tử mảng đầu tiên, ba hàng tiếp theo bởi phần thứ hai và thứ năm và thứ sáu bởi phần tử mảng cuối cùng.
Làm cách nào tôi có thể sử dụng ng-repeat theo cách sao cho phần tử html bị ràng buộc 'biến mất' trong khi kết xuất?
Hoặc có một giải pháp khác cho điều này?
Làm rõ: Cấu trúc được tạo nên như sau. Mỗi phần tử mảng có thể tạo giữa 1-3 hàng của bảng. Câu trả lời lý tưởng nên hỗ trợ các hàng 0-n cho mỗi phần tử mảng.
<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>
tr
tôi sẽ nhận được một hàng cho mỗi phần tử mảng, theo như tôi hiểu.
tr
được tạo bởi một phần tử mảng không có cùng cấu trúc.