我知道如何使用EventEmitter发起活动.如果我有这样一个组件,我还可以附加一个要调用的方法:
<component-with-event (myevent)="mymethod($event)" />
当我有这样一个组件时,一切都很好.我在服务中加入了一些逻辑,需要从服务内部引发一个事件.我所做的是:
export class MyService {
myevent: EventEmitter = new EventEmitter();
someMethodThatWillRaiseEvent() {
this.myevent.next({data: 'fun'});
}
}
我有一个组件需要根据这个事件更新一些值,但我似乎无法让它工作.我try 的是:
//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的服务不是组件时,如何让MyComponent订阅该事件?
我在2.0.0-alpha上.28
编辑:将我的"工作示例"修改为实际工作,因此可以将重点放在不工作的部分;)
示例代码: