我已经在angular6中编写了一个自定义验证器:
export class CustomValidator {
static validateSku(skuService: SkuService) {
return (control: AbstractControl) => {
let skuId = control.value;
if(skuId){
return skuService.getSkuById(skuId)
.pipe(
debounceTime(500),
take(1),
map(data => data ? null : {'invalidSku' : skuId })
);
}
}
}
}
但是当我将这个验证器与formControl字段一起使用时,出现以下错误:
代码:
prodid: ['', [Validators.min(0)], CustomValidator.validateSku(this.skuService)]
错误:
ERROR Error: Expected validator to return Promise or Observable.
但是将它与Validators.required一起使用不会抛出任何错误。但是我不想在这里使用必需的验证器。
与验证程序兼容的代码。必需
prodid: ['', [Validators.required, Validators.min(0)], CustomValidator.validateSku(this.skuService)]