【发布时间】:2018-06-21 23:30:16
【问题描述】:
我正在派生一种用于验证范围的自定义验证方法,如下所示:
static ratingRange=(min:number,max:number) =>
{
return (control:AbstractControl):Promise<ValidationErrors|null>=>
{
return new Promise(resolve=>
{
if (control.value !== undefined && (isNaN(control.value)
|| control.value < min || control.value > max))
return resolve({InvalidRange:true});
else return resolve(null);
}
);
}
它正在按预期执行验证,没有任何问题。
但是出于测试目的,我想使用ValidatorFn factory 重写验证方法,如下所示。(意图不是返回一个承诺对象)
static CustomRangeValidator (min:number,max:number): ValidatorFn
{
return (control:AbstractControl):{[key:string]:boolean}=>
{
if (control.value !== undefined && (isNaN(control.value)
|| control.value < min || control.value > max))
return {InvalidRange:true}
else return null;
}
}
但我得到了
'期望验证器返回 Promise 或 Observable。'
有没有办法在不返回 Promise 对象的情况下重构我的函数调用?
【问题讨论】:
-
您使用的是模板驱动还是响应式表单?stackoverflow.com/questions/44557477/…
-
@ Faraji Anderson - 我正在使用反应形式。