Question

Je suis à peu près nouveau à angulaire, mais je me sens comme si c'était une sorte de fou.

J'ai plusieurs collections étant affichées via NG-répéter dans une portée du contrôleur. Il y a un champ de saisie pour chaque liste pour effectuer une requête simple. Je jouais avec différents filtres de mon code et j'ai fini par mettre une console.log dans ma fonction de filtrage. J'ai réalisé que chaque fois que ma fonction de filtre était appelée à une liste, elle était appelée à toutes les listes de la portée. En outre, il appelait la fonction de filtrage deux fois à chaque fois. Donc, avec 3 collections, le filtrage de l'une des listes appellerait la fonction de filtrage 6 fois.

Je pensais que c'était peut-être juste mon filtre personnalisé, alors je l'ai essayé sur la fonction de filtrage par défaut. Même histoire. Voici mon code:

https://dl.dropbox.com/905197/ filtre-filtre-test.html

aller à la console et voir par vous-même: /

Qu'est-ce que je fais mal ici? Cela semble être une chose aussi simple, mais cela fait tellement de travail.

Était-ce utile?

La solution

Ceci est normal, Angularjs utilise une approche "Dirty-Check", il doit donc appeler tous les filtres pour voir si des modifications existent.Après cela, il détecte que vous avez une modification sur une variable (celle que vous avez saisie), puis il réécole à nouveau tous les filtres pour détecter s'il a d'autres modifications.

Voir la première réponse de Cette question

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top