So come generare un evento con EventEmitter. Posso anche allegare un metodo da chiamare se ho un componente come questo:
<component-with-event (myevent)="mymethod($event)" />
Quando ho un componente come questo, tutto funziona alla grande. Ho spostato una logica in un servizio e ho bisogno di generare un evento dall'interno del servizio. Quello che ho fatto è stato questo:
export class MyService {
myevent: EventEmitter = new EventEmitter();
someMethodThatWillRaiseEvent() {
this.myevent.next({data: 'fun'});
}
}
Ho un componente che deve aggiornare un valore in base a questo evento ma non riesco a farlo funzionare. Quello che ho provato è stato questo:
//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
}
}
Come faccio a far iscrivere MyComponent all'evento quando il servizio che lo genera non è un componente?
Sono su 2.0.0-alpha.28
EDIT: modificato il mio "esempio di lavoro" in modo che funzioni effettivamente, quindi è possibile concentrarsi sulla parte non funzionante;)
Codice di esempio: http://plnkr.co/edit/m1x62WoCHpKtx0uLNsIv