为什么在初始页面负载上两次调用角度自定义验证器以及如何预防它



我在复选框上键入了自定义验证器,并观察到自定义有效taor在初始页面加载上两次调用,这会导致问题,因为我的验证器用于计数已检查的复选框的数量,因为它被称为两次,反值不正确。

我在自定义验证器函数中添加了控制台日志并检查了两次。

taskSelectionInJobValidation(formctrl:FormControl) {
if(formctrl.value == true){
  this.tasksInJobCount ++;
} else{
  this.tasksInJobCount --;
}
console.log(this.tasksInJobCount);
if (this.tasksInJobCount < 1) {
  return {
    valid : false
  }
}
return null;

}

应调用一次自定义有效函数,它被称为两次,我想防止它在页面加载时只能调用一次。

基本上是验证两次 - 一次单击"更新"按钮时失去输入的焦点(在更新按钮点击事件之前,输入降低了焦点(,一次用于验证按下"更新"按钮后,弹出编辑器中的所有输入(无法防止此行为(。在当前情况下,我建议使用网格的保存事件向用户显示确认消息或实现自定义代码以跟踪触发哪些验证的验证 - 当失去输入的焦点或单击"更新"按钮时。

bootstrap()之前致电enableProdMode()应修复:

import {enableProdMode} from "angular2/core";
enableProdMode();

默认情况下,Angular2在DevMode中运行,其中更改检测总是两次运行,以检查显示您应用程序中一个错误的模型不稳定性(在检查后会更改错误消息'xxxx'(

相关内容

  • 没有找到相关文章

最新更新