Estou usando o Angular.js para um aplicativo que usa trs ocultos para simular um efeito deslizante, mostrando o tr e deslizando a div no td abaixo. Esse processo funcionou de maneira fantástica usando o knockout.js ao iterar sobre uma matriz dessas linhas, porque eu poderia usar os <!-- ko:foreach -->
dois elementos tr.
Com angular, ng-repeat
deve ser aplicado a um elemento html, o que significa que não consigo repetir essas linhas duplas usando métodos padrão. Minha primeira resposta a isso foi criar uma diretiva para representar esses trs duplos, mas isso ficou aquém porque os modelos de diretiva devem ter um único elemento raiz, mas eu tenho dois ( <tr></tr><tr></tr>
).
Se alguém com experiência com ng-repeat e angular que quebrou isso puder explicar como resolver esse problema, ficaria muito grato.
(Devo também observar que anexar ng-repeat
ao tbody é uma opção, mas isso produz vários tbodys, e estou assumindo que essa é uma má forma para o HTML padrão, embora me corrija se estiver errado)
fonte
O desenvolvedor do AngularJS @ igor-minar respondeu isso no Angular.js ng-repeat em vários elementos .
Miško Hevery implementou recentemente o suporte adequado via
ng-repeat-start
eng-repeat-end
. Esse aprimoramento não foi lançado a partir de 1.0.7 (estável) e 1.1.5 (instável).Atualizar
Agora está disponível no 1.2.0rc1. Confira os documentos oficiais e este screencast de John Lindquist.
fonte
Ter vários elementos pode ser válido, mas se você estiver tentando criar uma grade rolável com cabeçalhos / rodapés fixos, o seguinte poderá não funcionar. Este código assume o seguinte CSS, jquery e AngularJS.
HTML
CSS para criar cabeçalho / rodapé fixo para grade de tabela rolável
Jquery para vincular a rolagem horizontal de tbody, isso não funciona porque eles se repetem durante a repetição de ng.
fonte
Você pode fazer isso dessa maneira, como mostrei nesta resposta: https://stackoverflow.com/a/26420732/769900
fonte