Quand dois-je utiliser angular $watch
fonctions et utilisation ng-change
directive angularjs? Pour moi, ils peuvent tous les deux faire de même.
Existe-t-il des différences ou des schémas d'utilisation entre eux?
Ce ne sont pas les mêmes, clairement. L'un est utilisé uniquement dans le contrôleur; l'autre est une directive sur un élément d'entrée.
Mais même dans leur application, ils diffèrent.
Lorsque vous utilisez $watch
l'expression surveillée sera évaluée à chaque cycle de résumé, et s'il y a un changement, le gestionnaire est appelé.
Avec ng-change
, le gestionnaire est invoqué explicitement en réponse à un événement.
Avec $watch
, le changement peut venir de n'importe où: action de l'utilisateur, fonction du contrôleur, service - tout déclenchera le gestionnaire.
Avec ng-change
, la modification est limitée à une action de l'utilisateur sur un élément d'entrée particulier.
Il convient également de noter que ng-change
fonctionne uniquement en combinaison avec ng-model
- en d'autres termes, le ng-change
l'expression n'est évaluée que lorsque ngModel.$viewValue
(reportez-vous à la documentation ngModelController
pour plus d'informations) est modifié, ce qui se produit généralement en réponse à un événement déclenché par l'utilisateur.