Мне нужно использовать 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>