When it comes to notifying multiple controllers of external changes from a service, one method is to utilize a deferred object. By calling notify on the deferred object and registering a callback on it, controllers can receive updates.
For example:
// Code in the service
$timeout(function() {
defered.notify('In progress')}
, 0)
// Code in the controller
var promise = myService.promise
promise.then(function(success) {
console.log("success");
}, function(error) {
console.log("error");
}, function(update) {
console.log("got an update!");
}) ;
The question now arises: Is there a way to remove the notify callback when the controller is destroyed?