There definitely is better ways to do this. And we really should not abuse broadcasting events. We should recall that directives can be instantiated multiple times in a page, while events are global!