Pregunta

Soy bastante nuevo en angular, pero siento que esto es un poco loco.

Tengo múltiples colecciones que se muestran a través de NG-Repetir en un ámbito de control. Hay un campo de entrada para cada lista para realizar una consulta simple. Estaba jugando con varios filtros en mi código y terminé poniendo una consola.log en mi función de filtro. Me di cuenta de que cada vez que se llamaba mi función de filtro para una lista, se llamaba a todas las listas en el alcance. Además, estaba llamando a la función del filtro dos veces cada vez. Entonces, con 3 colecciones, filtrar una de las listas llamaría la función de filtro 6 veces.

Pensé que tal vez era solo mi filtro personalizado, así que lo probé en la función de filtro predeterminada. Misma historia Aquí está mi código:

https://dl.dropbox.com/u/905197/ Filtro angular-test.html

Ir a la consola y ver por ti mismo: /

¿Qué estoy haciendo mal aquí? Esto parece una cosa tan simple, pero está haciendo mucho trabajo.

¿Fue útil?

Solución

Esto es normal, AngularJS utiliza un enfoque de 'cheque sucio', por lo que debe llamar a todos los filtros para ver si existen cambios.Después de esto, detecta que tiene un cambio en una variable (la que escribió) y luego vuelva a ejecutar todos los filtros para detectar si tiene otros cambios.

Vea la primera respuesta de esta pregunta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top