Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 订阅者正在触发,即使它已取消订阅_Typescript_Rxjs_Angular7_Subscription_Eventemitter - Fatal编程技术网

Typescript 订阅者正在触发,即使它已取消订阅

Typescript 订阅者正在触发,即使它已取消订阅,typescript,rxjs,angular7,subscription,eventemitter,Typescript,Rxjs,Angular7,Subscription,Eventemitter,我有一个事件发射器和5个订阅者在5页中的每一页(第1页,第2页,第3页,第4页,第5页) 我在ngOnInit()上订阅了该活动,并在Ngondestory()上取消订阅 这些页面实际上是路由页面,即一次只将一个页面加载到DOM 所以我的用例是 最初我转到第1页并触发事件发射器 然后我移动到第2页,再次触发事件发射器 我可以观察到这个事件发射器在第1页和第2页都触发了订阅 怎么可能因为我已经退订了, 我怎样才能解决这个问题 ngOnInit(){ this.translationService=

我有一个事件发射器和5个订阅者在5页中的每一页(第1页,第2页,第3页,第4页,第5页)

我在ngOnInit()上订阅了该活动,并在Ngondestory()上取消订阅

这些页面实际上是路由页面,即一次只将一个页面加载到DOM

所以我的用例是 最初我转到第1页并触发事件发射器 然后我移动到第2页,再次触发事件发射器 我可以观察到这个事件发射器在第1页和第2页都触发了订阅

怎么可能因为我已经退订了, 我怎样才能解决这个问题

ngOnInit(){
this.translationService=this.sharedService.language\u english.subscribe(
数据=>{
console.log(数据)
此.触发转换模块(数据);
}
);
}
恩贡德斯特罗(){
此为.translationService.unsubscribe();
}

我相信角度路线的改变不会调用销毁生命周期方法

解决方法将在下面的问题中讨论

如果您不需要根据页面具体更改服务,只需在
app.component.ts
构造函数中对其进行初始化,而不是在每个页面中进行初始化