When to use $watch or ng-change in Angularjs

后端 未结 1 866
北恋
北恋 2020-12-13 17:51

When should I use angular $watch functions and when use ng-change angularjs directive? To me, they both can do the same.

Are there any dif

相关标签:
1条回答
  • 2020-12-13 18:08

    They are not the same, clearly. One is used solely in the controller; the other is a directive on an input element.

    But even in their application they differ.

    When you use $watch the watched expression will be evaluated on every digest cycle, and if there is a change, the handler is invoked.

    With ng-change, the handler is invoked explicitly in response to an event.

    With $watch, change can come from anywhere: user action, controller function, service - all will trigger the handler.

    With ng-change, the change is restricted to a user action on a particular input element.

    It is worth to note also that ng-change works only in combination with ng-model - in other words, the ng-change expression is evaluated only when ngModel.$viewValue (refer to ngModelController documentation for more info) is changed, which typically happens in response to a user-initiated event.

    0 讨论(0)
提交回复
热议问题