A-S*_*ani 8 angular-validation angular angular-forms angular-formbuilder
我有一个自定义异步验证器,我想updateOn: 'blur'
使用FormBuilder
以下方法设置属性:
myForm = this.formBuilder.group({
email: ['', [Validators.required], [this.myAsyncValidator]]
// ...
});
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它不起作用:
email: ['', [Validators.required], [this.myAsyncValidator, {updateOn: 'blur'}]]
Run Code Online (Sandbox Code Playgroud)
笔记
我不想像下面这样手动创建表单控件实例:
myForm = new FormGroup({
email: new FormControl('', {asyncValidators: [this.myAsyncValidator]}, updateOn: 'blur')
});
Run Code Online (Sandbox Code Playgroud)
我想为这个问题添加更多答案。
这是图书馆的代码:
因此,从您的问题来看,您似乎正在尝试设置updateOn
电子邮件formControl
并且正在设置 3 个参数。这是不正确的。
改变
myForm = this.formBuilder.group({
email: ['', [Validators.required], [this.myAsyncValidator]]
// ...
});
Run Code Online (Sandbox Code Playgroud)
到
myForm = this.formBuilder.group({
email: ['', {validators: Validators.required, asyncValidators: this.myAsyncValidator, updateOn: 'blur'}]
// ...
});
Run Code Online (Sandbox Code Playgroud)
有两种方法可以实现-
myForm = this.formBuilder.group({email: this.formBuilder.control('', {updateOn: 'blur', validators: [], asyncValidators: []})})
Run Code Online (Sandbox Code Playgroud)
或者,
myForm = this.formBuilder.group({email: ['', {updateOn: 'blur', validators:[], asyncValidators: []}]})
Run Code Online (Sandbox Code Playgroud)