Мне нужно использовать ng-repeat
(в AngularJS), чтобы перечислить все элементы в массиве.
Сложность состоит в том, что каждый элемент массива преобразуется в одну, две или три строки таблицы.
Я не могу создать действительный HTML, если ng-repeat
используется для элемента, так как между <tbody>
и <tr>
.
Например, если бы я использовал ng-repeat <span>
, я бы получил:
<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-repeat таким образом, чтобы элемент 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>
tr
Насколько я понимаю, если бы я использовал ng-repeat, я бы получил по одной строке на элемент массива.
tr
с, которые генерируются одним элементом массива, не имеют одинаковую структуру.