Angular.js caching $ templates compilados / desempenho de diretivas dentro ng-repeat
Eu tenho uma diretiva que renderiza a célula da tabela (veja como estou compilando aqui, basicamente usando$compile
dentrolink fn
Modelo de diretiva Angular.js usando variável do escopo herdado / pai), agora isso é usado dentro de doisng-repeat
s, um para linhas, outro para colunas, então é basicamente
<ng-repeat row in rows>
<ng-repeat column in columns>
<my-cell-directive />
</ng-repeat>
</ng-repeat>
com 50 linhas e 8 colunas, ele tem um grande impacto (bastante perceptível de qualquer maneira) no desempenho (de renderização).
Então, eu estava procurando uma maneira de melhorá-lo. Primeiro, tentei me livrar dessa repetição interna de colunas, criando ummy-cols-directive
que itera internamente nas colunas, encontra seu modelo, cria uma string (com essas 8 colunas dentro) e a compila. O que reduziu a quantidade de compilação de 400 para 50. Mas, na verdade, não houve melhorias visíveis na renderização (bem, mas apenas 15%).
Agora, minha outra idéia era reduzi-lo a apenas uma compilação de alguma forma, basicamente compilando-a na primeira iteração de ng-repeat e salvando (armazenando em cache) o resultado compilado para que a diretiva usasse isso em vez de compilá-la repetidamente, apenas substituindo valores de ligação por valores da iteração atual.
Seria possível de alguma forma? Ou existe alguma outra maneira de melhorar a velocidade de renderização?