I\'m familiar with the following methods to implement communication between controllers.
Are there others? Are there better approaches / best practices?
I use functionality-specific shared services to communicate between controllers.
You can create a generic shared service to have a central point to subscribe to and broadcast events, but I find functionality-specific services to be easier to maintain over time, especially as the project and team grows.