ejemplo change javascript angularjs angularjs-ng-change

javascript - ejemplo - Cuándo usar $ watch o ng-change en Angularjs



ng-init (1)

¿Cuándo debo usar las funciones angulares $watch y cuando uso la directiva ng-change angularjs? Para mí, ambos pueden hacer lo mismo.

¿Hay diferencias o patrones de uso entre ellos?


No son lo mismo, claramente. Uno se usa únicamente en el controlador; el otro es una directiva sobre un elemento de entrada.

Pero incluso en su aplicación difieren.

Cuando usa $watch la expresión observada se evaluará en cada ciclo de resumen, y si hay un cambio, se invoca el controlador.

Con ng-change , el controlador se invoca explícitamente en respuesta a un evento.

Con $watch , el cambio puede venir de cualquier parte: acción del usuario, función del controlador, servicio: todo activará el controlador.

Con ng-change , el cambio está restringido a una acción del usuario en un elemento de entrada particular.

También vale la pena señalar que ng-change solo funciona en combinación con ng-model ; en otras palabras, la expresión ng-change se evalúa solo cuando se ngModel.$viewValue (consulte la documentación de ngModelController para obtener más información), que generalmente sucede en respuesta a un evento iniciado por el usuario.