Eu preciso usar ng-repeat(no AngularJS) para listar todos os elementos em uma matriz.
A complicação é que cada elemento da matriz se transforma em uma, duas ou três linhas de uma tabela.
Não consigo criar html válido, se ng-repeatfor usado em um elemento, pois nenhum tipo de elemento repetido é permitido entre <tbody>e<tr> .
Por exemplo, se eu usasse ng-repeat <span>, eu obteria:
<table>
<tbody>
<span>
<tr>...</tr>
</span>
<span>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</span>
<span>
<tr>...</tr>
<tr>...</tr>
</span>
</tbody>
</table>
Qual é o html inválido.
Mas o que eu preciso ser gerado é:
<table>
<tbody>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
onde a primeira linha foi gerada pelo primeiro elemento da matriz, as próximas três pela segunda e a quinta e a sexta pelo último elemento da matriz.
Como posso usar ng-repeat de forma que o elemento html ao qual está vinculado 'desapareça' durante a renderização?
Ou existe outra solução para isso?
Esclarecimento: A estrutura gerada deve se parecer com abaixo. Cada elemento da matriz pode gerar entre 1-3 linhas da tabela. A resposta deve idealmente suportar 0-n linhas por elemento da matriz.
<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, obteria uma linha por elemento da matriz, pelo que entendi.
trs que são gerados por um elemento da matriz não têm a mesma estrutura.