Angular $watchGroup WTF

by Sébastien Castiel

HTML

<script src="https://code.angularjs.org/1.5.5/angular.min.js"></script>
<div ng-controller="MyCtrl">
  <button ng-click="incA()">
    a = {{a}}
  </button>
  <button ng-click="incB()">
    b = {{b}}
  </button>
</div>

JavaScript

var myApp = angular.module('myApp',[]);

angular.module('myApp')
	.controller('MyCtrl', function ($scope) {
    $scope.a = 1;
    $scope.b = 1;
    
    $scope.incA = function() { console.log("Increment a"); $scope.a++; };
    $scope.incB = function() { console.log("Increment b"); $scope.b++; };
    
    $scope.$watchGroup(['a', 'b'], function(newValues, oldValues) {
    	console.log(
      	"a:" + oldValues[0] +
        ",b:" + oldValues[1] + " → " +
        "a:" + newValues[0] +
        ",b:" + newValues[1]
      );
    });
	});