Domanda

Sono praticamente nuovo per angolare, ma mi sento come questo è un po 'pazzo.

Ho ricevuto più collezioni visualizzate tramite NG-Ripeti in un unico campo di controllo. C'è un campo di input per ogni elenco per eseguire una query semplice. Stavo giocando con vari filtri nel mio codice e ho finito per mettere una console.log nella mia funzione filtro. Ho capito che ogni volta che la mia funzione di filtro è stata chiamata per una lista, è stato chiamato per tutte le liste nell'ambito. Inoltre, stava chiamando la funzione del filtro due volte ogni volta. Quindi con 3 collezioni, il filtraggio di uno degli elenchi chiamerebbe la funzione del filtro 6 volte.

Ho pensato che forse era solo il mio filtro personalizzato, quindi l'ho provato sulla funzione di filtro predefinita. Stessa storia. Ecco il mio codice:

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

Vai alla console e vedi per te: /

Cosa sto facendo di sbagliato qui? Questo sembra una cosa così semplice, ma sta facendo così tanto lavoro.

È stato utile?

Soluzione

Questo è normale, AngularJS utilizza un approccio "sporco-controllo", quindi è necessario chiamare tutti i filtri per vedere se esistono modifiche.Dopo questo rileva che si ha una modifica su una variabile (quella che hai digitato) e quindi riesegue nuovamente tutti i filtri per rilevare se ha altre modifiche.

Vedi la prima risposta di Questa domanda

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top