我正在开发一个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?谢谢!
答案 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()
}