Pergunta

Eu sou praticamente novo para angular, mas sinto que isso é meio louco.

Eu tenho várias coleções sendo exibidas via NG-Repetir em um escopo de controlador. Há um campo de entrada para cada lista para executar uma consulta simples. Eu estava brincando com vários filtros no meu código e acabei colocando um console.log na minha função de filtro. Percebi que toda vez que minha função de filtro foi chamada de uma lista, ela estava sendo chamada de todas as listas no escopo. Além disso, estava chamando a função de filtro duas vezes por vez. Então, com 3 coleções, filtrar uma das listas chamaria a função de filtro 6 vezes.

Eu pensei que talvez fosse apenas o meu filtro personalizado, então eu tentei na função de filtro padrão. Mesma história. Aqui está o meu código:

https://dl.dropbox.com/u/905197/ Angular-Filter-Test.html

Vá para o console e veja por si mesmo: /

O que estou fazendo errado aqui? Isso parece ser uma coisa tão simples, mas está fazendo muito trabalho.

Foi útil?

Solução

Isso é normal, AngularJS usa uma abordagem 'Dirty-Check', portanto, é necessário ligar para todos os filtros para ver se houver alterações.Depois disso, ele detecta que você tem uma alteração em uma variável (aquela que você digitou) e, em seguida, executa todos os filtros novamente para detectar se tiver outras alterações.

Veja a primeira resposta de pergunta

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top