如何在Angular2中订阅服务上的事件?
2022-08-30 04:40:23
我知道如何向 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 订阅该事件?
我在 2.0.0-alpha.28 上
编辑:修改了我的“工作示例”以实际工作,因此可以将注意力放在不工作部分;)