ref: https://stackoverflow.com/questions/14957614/angularjs-clear-watch/46296189#46296189
// call to $watch will return a de-register function var listener = $scope.$watch(someVariableToWatch, function(....)); $scope.$on('$destroy', function() { listener(); // call the de-register function on scope destroy });