在创建表单之前运行自定义验证

问题描述 投票:0回答:1

我有一个带有自定义验证的表单。我需要验证表单,因为表单将是未定义的。如果我不这样做,则代码无法正常工作。验证现在可以通过此代码进行,但我会尝试对其进行改进。

当页面加载完成时,程序进入验证(两次)并将我的消息写到控制台(在创建表单之前)。我认为有问题。在我打开对话框/表单或完成表单创建之前,它不应该运行。

  createForm() {
    this.form = this.fb.group({
      name: [this.local_user.name, [Validators.required, this.isExistValidator()]]
    });
  }
isExistValidator(): ValidatorFn {
    return (control: AbstractControl): { [key: string]: boolean } | null => {
      if (this.form) {
        // some code with reutrn isExist:true or null
      }
    };
  }
angular forms validation angular7
1个回答
0
投票

使用这种方式

isExistValidator(): ValidatorFn {
    return (control: AbstractControl): { [key: string]: boolean } | null => {
       if (!control || !control.parent) {
          return null;
       }
       ...
    };
}
© www.soinside.com 2019 - 2024. All rights reserved.