【发布时间】:2022-05-04 19:41:59
【问题描述】:
我正在尝试以反应形式创建自定义验证器函数。代码:
form.component.ts
...
form = new FormGroup({
username: new FormControl('', [
Validators.required,
Validators.minLength(3)
],
UsernameService.isUnique
)
});
...
用户名.service.ts
...
static isUnique(control: AbstractControl): Promise<ValidationErrors | null> {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({ notUnique: true });
}, 2000);
});
}
...
在UsernameService.isUnique 上悬停时显示错误 -
"参数类型(控件:AbstractControl)=> Promise
不可分配给参数类型 AsyncValidatorFn | 异步验证器Fn[] |空"
为什么会出现这个错误?根据文档 (https://angular.io/api/forms/AsyncValidatorFn),我使用了 AsyncValidatorFn 的正确调用签名。
【问题讨论】:
-
您是否尝试使用不带
static修饰符的isUnique-方法?请改用public。
标签: angular