According to the documentation of $interval , a promise is returned, and the interval can be canceled with $interval.cancel(promise) .
I do not see any methods for canceling all intervals, but if you save the returned promises in an array, you can iterate over it to cancel all of them.
var intervals = [] intervals.push($interval(function() { }, )); intervals.push($interval(function() { }, )); ... angular.forEach(intervals, function(interval) { $interval.cancel(interval); }); intervals.length = 0;
If your intervals are distributed across different controllers, use the service to track them.
source share