Improve this Doc

# Error: $rootScope:infdig
Infinite $digest Loop

    {0} $digest() iterations reached. Aborting!
    Watchers fired in the last 5 iterations: {1}

## Description

This error occurs when the application's model becomes unstable and each `$digest` cycle triggers a state change and subsequent `$digest` cycle. AngularJS detects this situation and prevents an infinite loop from causing the browser to become unresponsive.

For example, the situation can occur by setting up a watch on a path and subsequently updating the same path when the value changes.

    $scope.$watch('foo', function() {
      $scope.foo = $scope.foo + 1;
    });

One common mistake is binding to a function which generates a new array every time it is called. For example:

    <div ng-repeat="user in getUsers()">{{ user.name }}</div>

    ...

    $scope.getUsers = function() {
      return [ { name: 'Hank' }, { name: 'Francisco' } ];
    };

Since `getUsers()` returns a new array, AngularJS determines that the model is different on each `$digest` cycle, resulting in the error. The solution is to return the same array object if the elements have not changed:

    var users = [ { name: 'Hank' }, { name: 'Francisco' } ];

    $scope.getUsers = function() {
      return users;
    };

The maximum number of allowed iterations of the `$digest` cycle is controlled via TTL setting which can be configured via $rootScopeProvider.