Angular 角信号R事件未被破坏

Angular 角信号R事件未被破坏,angular,typescript,angular2-routing,Angular,Typescript,Angular2 Routing,我在用信号器做角度应用。我有几个不同的组件监听不同的信号器事件,因此EntityListComponent有一个refreshEntityList侦听器,EntityComponent将有一个refreshEntity侦听器。问题是,如果我从EntityList导航到实体,我仍然在运行EntityList侦听器 我如何设置事件侦听器的示例: ngOnInit(){ this.registerServerOneEvents(); } 专用注册表ServerOneEvents(){ //服务器到客户

我在用信号器做角度应用。我有几个不同的组件监听不同的信号器事件,因此
EntityListComponent
有一个
refreshEntityList
侦听器,
EntityComponent
将有一个
refreshEntity
侦听器。问题是,如果我从
EntityList
导航到
实体
,我仍然在运行
EntityList
侦听器

我如何设置事件侦听器的示例:

ngOnInit(){
this.registerServerOneEvents();
}
专用注册表ServerOneEvents(){
//服务器到客户端
this.signalservice.hubProxy.on('refreshEntityList',()=>{
此.ngZone.run(()=>{
this.toastService.showInfo('正在更新实体列表…');
这是refreshData();
}});
});
}
导航示例

链接

不太清楚
信号器
但您可以在导航上销毁所有事件侦听器。我想这应该是实现的,你可以使用angularI的生命周期钩子,我想我可以调用signal.Hub.Proxy.off来实现这一点,但我还不能让它正常工作。也许你也可以在onDestroy方法中尝试一下。我已经找到了一个解决方案,但它仅仅是一个创可贴,所以如果有人有更好的解决方案,请告诉我,但是我在OnDebug中设置了一个变量<代码> SturalRealEng/<代码>,并在事件监听器中的IF语句中使用它。这是可行的,但我知道其他页面会浪费内存。没错,我同意这一点。