我有一个验证类,我想使用这样的方法:
amount: [0, DataInputValidators.validateRange(1,2)],
这不起作用,它有错误:
Property 'validateRange' does not exist on type 'typeof DataInputValidators'.
验证类别:
import {AbstractControl} from '@angular/forms';
export class DataInputValidators {
validateRange(min, max) {
return function (control: AbstractControl) {
if (control.value < min || control.value > max) {
return { outOfRange: true };
}
return null;
};
}
}
答案 0 :(得分:1)
如果要使用静态函数,请将该函数声明为static:-)
export class DataInputValidators {
static validateRange(min, max) {
return function (control: AbstractControl) {
if (control.value < min || control.value > max) {
return { outOfRange: true };
}
return null;
};
}
}
答案 1 :(得分:-1)
在return语句后删除function关键字,并将其保留在外面。它应该看起来像这样:
function validateRange(min: number, max: number): ValidatorFn {
return (control: AbstractControl): { [key: string]: boolean } | null {
if (control.value < min || control.value > max) {
return { 'outOfRange': true };
}
return null;
};
}