$watchCollection(obj, listener);
Shallow watches the properties of an object and fires whenever any of the properties change (for arrays, this implies watching the array items; for object maps, this implies watching the properties). If a change is detected, the listener callback is fired.
- The
objcollection is observed via standard $watch operation and is examined on every call to $digest() to see if any items have been added, removed, or moved. - The
listeneris called whenever anything within theobjhas changed. Examples include adding, removing, and moving items belonging to an object or array.
$scope.names = ['igor', 'matias', 'misko', 'james'];
$scope.dataCount = 4;
$scope.$watchCollection('names', function(newNames, oldNames) {
$scope.dataCount = newNames.length;
});
expect($scope.dataCount).toEqual(4);
$scope.$digest();
//still at 4 ... no changes
expect($scope.dataCount).toEqual(4);
$scope.names.pop();
$scope.$digest();
//now there's been a change
expect($scope.dataCount).toEqual(3);
Parameters
| Param | Type | Details |
|---|---|---|
| obj | stringfunction(scope) | Evaluated as expression. The expression value should evaluate to an object or an array which is observed on each $digest cycle. Any shallow change within the collection will trigger a call to the |
| listener | function(newCollection, oldCollection, scope) | a callback function called when a change is detected.
|
Returns
function() |
Returns a de-registration function for this listener. When the de-registration function is executed, the internal watch operation is terminated. |
Please login to continue.