During the migration of the feed component, I found a some lines that I didn’t know how to code it on Angular 2. The following gist is an extract of the code I’m talking about:

As you can see in the snippet, if the condition is true then the directive listens for events of type muted.byRequest, muted.byUser and muted.Join. The code that involves this events is easy, without any type of complexity (for now we ignore the $watch).

But, wait a minute, I have read the documentation of Angular 2 like hundred times and I do not remember nothing about “events” with Angular 1.X style. Thats because it not exist. Angular 2 don’t have a way to make events like in Angular 1, so I have to find a solution. After search for a solution I found this entry in laco’s blog.


Basicaly the idea is to make a service that implements the $broadcast and $on method like we had in $rootScope. For do this we use Observables, very important in Angular 2, and in this case we use a Subject.

So, now we can start to use events like in the example:

How I solved the problem?

I didn’t. This events are only to show the user information pop ups about when he is muted, so it’s not a critical feature. By now this events are fired and listen in different components, and some of it still implemented in Angular 1.4.

This is a solution I want to share with you, but I’m not sure if this will be the way that I will use to solve the problem. Because this events probably won’t be necessary when I reimplement the MuteNotifier.