javascript - 期望验证器返回 Promise 或 Observable
问题描述
我正在尝试对 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]]
推荐阅读
- javascript - 我如何从 AWS Cognito Api 获取机器对机器的令牌
- batch-file - NT BATCH - 字符串显示问题
- php - 将具有多个值的多个键设置为 Redis
- c# - 在 Azure 云服务上使用带有 PackageReference 的 ValueTuple
- swift - 如何在警报中设置键盘类型
- python - Python3 Tkinter chckbutton 左对齐多行文本
- python - 如何知道一个值是否在嵌套字典中?
- c - 将二进制文件加载到未知的结构类型
- python - Pytorch 梯度存在但权重没有更新
- html - 将外部 JSON 加载到 HTML