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

时间:2017-07-19 06:54:00

标签: angular angular2-forms angular-forms

我正在开发一个Angular 4.x项目,并且有2页正确配置了路由。

在page1上,我订阅了NgForm的valueChanges,如下所示:

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

加载page1时,我可以看到" myNgForm是否有效?的 "

然而,当点击链接转到第2页时,我意识到myNgForm1.valueChanges再次被触发,现在我可以看到" myNgForm是否有效?的 "

在导航到不同的页面时,是否有任何想法避免触发myNgForm1的valueChanges?谢谢!

2 个答案:

答案 0 :(得分:1)

取消订阅<!--<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild"> <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)% (DestinationSubDirectory)%(Filename)%(Extension)')" /> <Exec Command="DeleteEmptyDirectory.bat" /> </Target>-->

ngOnDestroy

答案 1 :(得分:1)

据我所知,你需要做这样的事情:

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

然后在课堂上添加:

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