$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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $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.