为了调试目的,我跟踪了剥离的代码。 emailForCloudUserValidator 在单个 NgOnInit 运行中运行两次,将两条消息记录到控制台。
ngOnInit(){
this.contactControlGroup = this.formBuilder.group({
email:[this.contact.email, this.emailForCloudUserValidator]
});
this.formControls = this.contactControlGroup.controls;
}
private emailForCloudUserValidator(control: Control) : { [s: string]: boolean }{
if(!control.value){
console.log("email value is null");
}
return;
}
最佳答案
在 bootstrap()
之前调用 enableProdMode()
应该可以修复它:
import {enableProdMode} from "angular2/core";
enableProdMode();
默认情况下,Angular2 在 devMode
下运行,其中更改检测始终运行两次,以检查表明应用程序中存在错误的模型不稳定性(这会产生错误消息Expression 'xxxx' waschanged after已检查
)
关于validation - Angular 2 自定义验证器运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36775931/