javascript - angularjs kaller Filter to ganger med ng-repeat
Jeg er ny på angularjs og prøver å lære konseptet med filtre. Men i mitt tilfelle kaller angularjs filteret to ganger. Jeg forventet at filteret skulle kjøre bare én gang, men det kjører to ganger. Forstår ikke hvorfor dette skjer..
her er min plunker...
Svar #1
Hvis jeg ikke tar feil av spørsmålet ditt, er dette det samme spørsmålet som her
Angularjs bruker en 'dirty-check'-tilnærming, så det må kalle alle filtre for å se om det finnes noen endringer. Etter dette oppdager det at det har skjedd en endring på en variabel (den du skrev inn) og deretter kjører det alle filtre igjen for å oppdage om det har skjedd andre endringer.
For å forstå bedre, vil dette spørsmålet på StackOverflow forklare mer detaljert av en ekspert i AngularJS
Her er en annen plunker som kaller filteret to ganger
Det første kallet er fra vokterne som oppdager endringen. Fordi det finnes ett, må de kalles igjen for å se om det er nye endringer fordi en vokter kan gjøre endringer.