4 ms·
Yah. $watch ties into angularJS's model checking scheme. If anything at all happens in angularJS. It runs through all of the defined watches check functions to
by GhotiFish 14y ago
Yah. $watch ties into angularJS's model checking scheme. If anything at all happens in angularJS. It runs through all of the defined watches check functions to see if they return a different result.
ng-change is an event triggering when the input element changes.
watches can fire multiple times (I think up to 10), if the result of one watch changes the model, then angular will run all the checks again.
watches have their place on custom directives, but they're otherwise a pain in the butt.
I THINK this is how it works. I can tell you this with certainty: ng-change and $watch behave very differently.
- ganarajpr 14y agoActually ng-change is very much same as a $watch.. Here is the relevant source from Angular.. var ngChangeDirective = valueFn({ require: 'ngModel', link: function(scope, element, attr, ctrl) { ctrl.$viewChangeListeners.push(function() { scope.$eval(attr.ngChange); }); } });
- GhotiFish 14y agoWhile you're there, check out line 1033. Where it describes the behavior of $viewChangeListeners It triggers on the $setViewValue event. Not on detecting a model change event, like $watch. They are not the same.