导航到不同页面时仍会触发 Angular2 NgForm valueChanges

Angular2 NgForm valueChanges is still triggered when navigating to different page

我正在做一个 Angular 4.x 项目,有 2 个页面的路由配置正确。

在 page1 上,我订阅了一个 NgForm 的 valueChanges 是这样的:

this.myNgForm1.valueChanges.subscribe(data => { 
    console.log("Is myNgForm valid ? " + this.myNgForm1.valid); 
});

加载第 1 页时,我可以看到“myNgForm 有效吗?false”。

然而,当点击link转到page2时,我发现myNgForm1.valueChanges又被触发了,现在我可以看到“Is myNgForm valid ? "

有什么想法可以避免在导航到不同页面时触发 myNgForm1 的 valueChanges 吗?谢谢!

退订 ngOnDestroy

this.subscription = this.myNgForm1.valueChanges.subscribe(data => { 
    console.log("Is myNgForm valid ? " + this.myNgForm1.valid); 
});

ngOnDestroy() {
  this.subscription.unsubscribe();
}

据我所知,您需要执行以下操作:

this.valueChangesSubscriber = this.myNgForm1.valueChanges.subscribe(data => { 
    console.log("Is myNgForm valid ? " + this.myNgForm1.valid); 
});

然后在class中添加:

ngOnDestroy() {
    this.valueChangesSubscriber.unsubscribe()
}