EventEmitterでイベントを発生させる方法を知っています。次のようなコンポーネントがある場合に呼び出されるメソッドをアタッチすることもできます。
<component-with-event (myevent)="mymethod($event)" />
このようなコンポーネントがあると、すべてがうまく機能します。いくつかのロジックをサービスに移動し、サービス内からイベントを発生させる必要があります。私がしたことはこれでした:
export class MyService {
myevent: EventEmitter = new EventEmitter();
someMethodThatWillRaiseEvent() {
this.myevent.next({data: 'fun'});
}
}
このイベントに基づいて値を更新する必要があるコンポーネントがありますが、それを機能させることができません。私が試したのはこれです:
//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にイベントをサブスクライブさせるにはどうすればよいですか?
On 2.0.0-alpha.28を使用しています
編集:実際に機能するように「動作例」を変更したので、機能していない部分に焦点を合わせることができます;)