在说5页的每一页中都有一个事件发射器和5个订阅者(第1页,第2页,第3页,第4页,第5页)
我在ngOnInit()上订阅了该事件,并在ngOnDestroy()上取消了订阅,
这些页面实际上是路由页面,即一次仅将一个页面加载到DOM
所以我的用例是 最初,我转到第1页并触发了事件发射器 然后我再次移至第2页,触发了事件发射器 我可以看到,此事件发射器在Page 1和Page 2中都触发了订阅
这是怎么可能的,因为我已经退订了, 我该如何解决?
ngOnInit() {
this.translationService = this.sharedService.language_english.subscribe(
data => {
console.log(data)
this.trigger_translation_module(data);
}
);
}
ngOnDestroy() {
this.translationService.unsubscribe();
}
答案 0 :(得分:1)
我相信,改变角度路线不会调用销毁生命周期方法。
解决方法在下面的问题中进行讨论 https://github.com/NativeScript/nativescript-angular/issues/1049
如果您不需要根据页面专门更改服务,只需在app.component.ts
构造函数中初始化它即可,而不是在每个页面中进行初始化