Ich weiß, wie man mit dem EventEmitter ein Ereignis auslöst. Ich kann auch eine aufzurufende Methode anhängen, wenn ich eine Komponente wie diese habe:
<component-with-event (myevent)="mymethod($event)" />
Wenn ich eine solche Komponente habe, funktioniert alles hervorragend. Ich habe eine Logik in einen Dienst verschoben und muss ein Ereignis innerhalb des Dienstes auslösen. Was ich getan habe war folgendes:
export class MyService {
myevent: EventEmitter = new EventEmitter();
someMethodThatWillRaiseEvent() {
this.myevent.next({data: 'fun'});
}
}
Ich habe eine Komponente, die einen Wert basierend auf diesem Ereignis aktualisieren muss, aber ich kann nicht scheinen, dass es funktioniert. Was ich versucht habe war folgendes:
//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
}
}
Wie kann ich MyComponent dazu bringen, das Ereignis zu abonnieren, wenn der Dienst, der es auslöst, keine Komponente ist?
Ich bin auf 2.0.0-alpha.28
BEARBEITEN: Mein "Arbeitsbeispiel" wurde so geändert, dass es tatsächlich funktioniert, sodass der Fokus auf den nicht funktionierenden Teil gelegt werden kann;)
Beispielcode: http://plnkr.co/edit/m1x62WoCHpKtx0uLNsIv