导航到不同页面时仍会触发 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()
}
我正在做一个 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()
}