$digest
( type in module ng
)
Processes all of the watchers of the current scope and its children.
Because a watcher's listener can change the model, the
$digest() keeps calling the watchers until no more listeners are
firing. This means that it is possible to get into an infinite loop. This function will throw
'Maximum iteration limit exceeded.' if the number of iterations exceeds 10.
Usually you don't call $digest() directly in
controllers or in
directives.
Instead a call to $apply() (typically from within a
directives) will force a $digest() .
If you want to be notified whenever $digest() is called,
you can register a watchExpression function with $watch()
with no listener .
You may have a need to call $digest() from within unit-tests, to simulate the scope
life-cycle.
var scope = ...;
scope.name = 'misko';
scope.counter = 0;
expect(scope.counter).toEqual(0);
scope.$watch('name', function(newValue, oldValue) {
scope.counter = scope.counter + 1;
});
expect(scope.counter).toEqual(0);
scope.$digest();
// no variable change
expect(scope.counter).toEqual(0);
scope.name = 'adam';
scope.$digest();
expect(scope.counter).toEqual(1);
Scope#$digest();