EventEmitter ile bir olayı nasıl başlatacağımı biliyorum. Bunun gibi bir bileşenim varsa çağrılacak bir yöntem de ekleyebilirim:
<component-with-event (myevent)="mymethod($event)" />
Böyle bir bileşene sahip olduğumda, her şey harika çalışıyor. Bazı mantığı bir hizmete taşıdım ve Hizmetin içinden bir olay oluşturmam gerekiyor. Yaptığım şuydu:
export class MyService {
myevent: EventEmitter = new EventEmitter();
someMethodThatWillRaiseEvent() {
this.myevent.next({data: 'fun'});
}
}
Bu olaya dayalı olarak bir değeri güncellemem gereken bir bileşenim var, ancak çalışmasını sağlayamıyorum. Denediğim şey şuydu:
//Annotations...
export class MyComponent {
constructor(myService: MyService) {
//myService is injected properly and i already use methods/shared data on this.
myService.myevent.on(... // 'on' is not a method <-- not working
myService.myevent.subscribe(.. // subscribe is not a method <-- not working
}
}
MyComponent'ı yükselten hizmet bir bileşen olmadığında etkinliğe abone olmasını nasıl sağlayabilirim?
2.0.0-alpha.28 üzerindeyim
DÜZENLEME: "Çalışma örneğimi" gerçekten işe yarayacak şekilde değiştirdi, böylece çalışmayan kısma odaklanılabilir;)
Örnek kod: http://plnkr.co/edit/m1x62WoCHpKtx0uLNsIv