11

我有一个自定义异步验证器,我想updateOn: 'blur'使用以下方法设置属性FormBuilder

myForm = this.formBuilder.group({
   email: ['', [Validators.required], [this.myAsyncValidator]]
   // ...
});

我试过这个但它不起作用:

email: ['', [Validators.required], [this.myAsyncValidator, {updateOn: 'blur'}]]

笔记

我不想手动创建表单控件实例,如下所示:

myForm = new FormGroup({
    email: new FormControl('', {asyncValidators: [this.myAsyncValidator]}, updateOn: 'blur')
});
4

2 回答 2

11

有两种方法可以实现 -

myForm = this.formBuilder.group({email: this.formBuilder.control('', {updateOn: 'blur', validators: [], asyncValidators: []})})

或者,

myForm = this.formBuilder.group({email: ['', {updateOn: 'blur', validators:[], asyncValidators: []}]})
于 2020-11-11T19:36:00.270 回答
3

我想为这个问题添加更多答案。

这是图书馆的代码:

在此处输入图像描述

所以,从你的问题来看,看起来你正在尝试设置updateOn电子邮件formControl并且你正在设置 3 个参数。这是不正确的。

改变

myForm = this.formBuilder.group({
   email: ['', [Validators.required], [this.myAsyncValidator]]
   // ...
});

myForm = this.formBuilder.group({
   email: ['', {validators: Validators.required, asyncValidators: this.myAsyncValidator, updateOn: 'blur'}]
   // ...
});
于 2021-04-05T07:16:17.530 回答