Search code examples
javascriptangularjseventsangularjs-watch

Watch multiple $scope attributes


Is there a way to subscribe to events on multiple objects using $watch

E.g.

$scope.$watch('item1, item2', function () { });

Solution

  • Starting from AngularJS 1.3 there's a new method called $watchGroup for observing a set of expressions.

    $scope.foo = 'foo';
    $scope.bar = 'bar';
    
    $scope.$watchGroup(['foo', 'bar'], function(newValues, oldValues, scope) {
      // newValues array contains the current values of the watch expressions
      // with the indexes matching those of the watchExpression array
      // i.e.
      // newValues[0] -> $scope.foo 
      // and 
      // newValues[1] -> $scope.bar 
    });