snail is made by DreamWorks (movie "Turbo")
But you can make it slow!
$scope.$watch('item.categories',
function(categories){
//...
//...
//...
});
// from AngularJS 1.1.4
$scope.$watchCollection('names', callback);
// from AngularJS 1.3
$scope.$watchGroup(['foo', 'bar'], callback);
For each watcher digest method does:
to have less watcher in your application
<input ng-change="doSomething()" ng-model="name">
<input ng-model="name">
$scope.doSomething = function(){
};
$scope.$watch('name', $scope.doSomething);
Text
from Angular1.3
<input ng-model="search"></div>
<input ng-model="search"
ng-model-options="{ debounce: 500 }">
<input ng-model="search"
ng-model-options="{ updateOn: 'blur'}">
One-time binding syntax {{ ::value }}
for Angular 1.3
<div ng-controller="EventController">
<button ng-click="clickMe($event)">Click Me</button>
<p>One time binding: {{::name}}</p>
<p>Normal binding: {{name}}</p>
</div>
$apply: function(expr) {
try {
beginPhase('$apply');
return this.$eval(expr);
} catch (e) {
$exceptionHandler(e);
} finally {
clearPhase();
try {
$rootScope.$digest();
} catch (e) {
$exceptionHandler(e);
throw e;
}
}
},
$apply: function(expr) {
this.$eval(expr);
$rootScope.$digest();
},