Check this answer here to fix it correctly. Removing all listeners may have unknown effects, as there may be other places where listeners are added. You need to delete the one you added, not all.
Check this problem: Angular $ rootScope $ on listeners in the "destroyed" controller continues to work
Copy the code here for completeness too:
animateApp.controller('mainController', function($scope, $rootScope, service) { $scope.pageClass = 'page-home'; var unregister = $rootScope.$on('service.abc', function (newval) { console.log($scope.$id); }); $scope.$on('$destroy', unregister); });
source share