【发布时间】:2016-04-22 16:46:39
【问题描述】:
// Part of service
public someEvent: EventEmitter<number> = new EventEmitter();
....
// Component
@Component({
selector: 'some-component',
template: `...`
})
export class SomeComponent {
constructor(public service: Service) {
this.service.someEvent.subscribe((x) => {
// Do something
});
}
}
SomeComponent 显示在/ 路由中。当我导航到应用程序中的不同路线并再次返回时,SomeComponent 将再次订阅该事件,导致回调触发两次。如何订阅一次事件或在组件销毁时取消订阅并重新订阅?
// Can't subscribe after.
ngOnDestroy() {
this.service.someEvent.unsubscribe();
}
【问题讨论】:
标签: angular rxjs eventemitter angular2-services rxjs5