$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
obj
collection 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
listener
is called whenever anything within theobj
has 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 | string function(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.