我正在尝试对 Angular 5 进行自定义验证,但遇到以下错误
Expected validator to return Promise or Observable
如果值与所需的值不匹配,我只想向表单返回错误,这是我的代码:
这是我的表单所在的组件
constructor(fb: FormBuilder, private cadastroService:CadastroService) { this.signUp = fb.group({ "name": ["", Validators.compose([Validators.required, Validators.minLength(2)])], "email": ["", Validators.compose([Validators.required, Validators.email])], "phone": ["", Validators.compose([Validators.required, Validators.minLength(5)])], "cpf": ["", Validators.required, ValidateCpf] }) }
这段代码在我想要实现的验证文件中:
import { AbstractControl } from '@angular/forms'; export function ValidateCpf(control: AbstractControl){ if (control.value == 13445) { return {errorCpf: true} } return null; }
这种类型的验证是否仅适用于可观察对象,或者我可以在没有承诺或可观察的情况下进行验证吗?
这意味着您必须 在数组中添加多个验证器
. 例子:
有错误
profileFormGroup = { budget: [null, Validators.required, Validators.min(1)] };
上面一个会抛出错误, 验证器返回 Promise 或 Observable
使固定:
profileFormGroup = { budget: [null, [Validators.required, Validators.min(1)]] };
解释:
在使用多个验证器 时,通过使用内置验证器完成的角度反应式表单验证,该验证器可以在第二个位置的数组中给出。
FIELD_KEY:[INITIAL_VALUE,[LIST_OF_VALIDATORS]]