Wiem, jak podnieść zdarzenie za pomocą EventEmitter. Mogę również dołączyć metodę do wywołania, jeśli mam taki komponent:
<component-with-event (myevent)="mymethod($event)" />
Kiedy mam taki komponent, wszystko działa świetnie. Przeniosłem trochę logiki do usługi i muszę wywołać zdarzenie z wnętrza usługi. Oto co zrobiłem:
export class MyService {
myevent: EventEmitter = new EventEmitter();
someMethodThatWillRaiseEvent() {
this.myevent.next({data: 'fun'});
}
}
Mam komponent, który musi zaktualizować jakąś wartość na podstawie tego zdarzenia, ale nie wydaje mi się, aby działał. Próbowałem tego:
//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
}
}
Jak sprawić, by MyComponent zasubskrybował zdarzenie, gdy usługa, która go zgłasza, nie jest składnikiem?
Jestem na 2.0.0-alpha.28
EDYCJA: Zmodyfikowałem mój „działający przykład”, aby faktycznie działał, więc można skupić się na niedziałającej części;)
Przykładowy kod: http://plnkr.co/edit/m1x62WoCHpKtx0uLNsIv