Frage

Ich bin ziemlich neu für eckig, aber ich fühle mich so, als wäre das verrückt.

Ich habe mehrere Sammlungen erhalten, die über NG-Wiederholung in einem Controller-Umfang angezeigt werden. Für jede Liste gibt es ein Eingabefeld, um eine einfache Abfrage auszuführen. Ich spielte mit verschiedenen Filtern in meinem Code herum und landete ein console.log in meine Filterfunktion. Mir wurde klar, dass jedes Mal, wenn meine Filterfunktion für eine Liste aufgerufen wurde, für alle Listen des Geltungsbereichs aufgerufen wurde. Darüber hinaus wurde die Filterfunktion jedes Mal zweimal angerufen. Wenn Sie also 3 Kollektionen filtern, würde die Filterung einer der Listen die Filterfunktion 6-mal anrufen.

Ich dachte, vielleicht war es nur mein benutzerdefinierter Filter, also habe ich es auf der Standardfilterfunktion ausprobiert. Die gleiche Geschichte. Hier ist mein Code:

https://dl.dropbox.com/u/905197/ Winkelfiltertest.html

Zur Konsole gehen und selbst sehen: /

Was mache ich hier falsch? Das scheint so ein einfaches Ding, aber es tut so viel Arbeit.

War es hilfreich?

Lösung

Dies ist normal, Angularjs verwendet einen 'Dirty-Check' -Ansatz, sodass es alle Filter anrufen muss, um zu sehen, ob Änderungen vorhanden sind.Danach erkennt es, dass Sie eine Änderung in einer Variablen haben (der, die Sie eingegeben haben) und dann erneut alle Filter wieder ausführt, um zu erkennen, ob er andere Änderungen aufweist.

Siehe die erste Antwort von diese Frage

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top