It's no good having our application be capable of choosing images through the dialog, or fetching them from the server during the load process, if we can't display them in the page body. As our application has features that are loosely related to each other, we don't want to introduce events as the mechanism for controlling when these happen, since this introduces tight coupling between things such as our page body component and the loading service.
What we need are services that sit between the code that handles the interaction (such as loading the data) and the page body, and passes notifications from one side to the other when something interesting has happened. The mechanism that Angular provides to do this ...