Как вызвать функцию проверки внутри пользовательского метода проверки Range_length?
Привет, я хочу знать, как вызвать мой метод проверки в пользовательской директиве проверки.
Это моя функция проверки Range_length:
rangeLength: (option: ValidArgs): boolean => {
let param: number[] = <number[]>option.param;
return option.value.length >= param[0] && option.value.length <= param[1];
},
И это моя специальная директива проверки:
import { Directive, Input } from '@angular/core';
import { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';
import { FormValidator } from '@syncfusion/ej2-ng-inputs';
export function rangelenValidator(control: AbstractControl): { [key: string]: boolean } | null {
debugger
let range_length1: number = 5;
let range_length2: number = 8;
let result: boolean = (FormValidator as any).checkValidator.rangeLength({ value: control.value, param: range_length1, param2: range_length2 });
if (result === true) {
return null;
}
else {
return { 'rangelen': true };
}
}
@Directive({
selector: '[apprangelen]',
providers: [{ provide: NG_VALIDATORS, useExisting: rangelenValidatorDirective, multi: true }]
})
export class rangelenValidatorDirective implements Validator {
@Input('apprangelen') rangelen: any;
validate(control: AbstractControl): { [key: string]: any } | null {
return this.rangelen ? rangelenValidator(control) : null;
}
}
Здесь есть два параметра, чтобы проверить, но я не знаю, как передать эти два параметра и горячий, чтобы вызвать этот метод и проверить?
Точно так же у меня есть максимальная функция проверки, как показано ниже:
max: (option: ValidArgs): boolean => {
if (!isNaN(Number(option.value))) {
// Maximum rule validation for number
return +option.value <= option.param;
}
}
Я использовал этот метод, как показано ниже, он работал
import { Directive, Input} from '@angular/core';
import { AbstractControl, NG_VALIDATORS, Validator} from '@angular/forms';
import {FormValidator} from '@syncfusion/ej2-ng-inputs';
export function maxValidator(control: AbstractControl): { [key: string]: boolean } | null {
debugger
let max_value : number = 24;
let result: boolean = (FormValidator as any).checkValidator.max({ value: control.value, param: max_value});
if (result === true) {
return null;
}
else {
return { 'maxo': true };
}
}
@Directive({
selector: '[appmax]',
providers: [{ provide: NG_VALIDATORS, useExisting: maxValidatorDirective, multi: true }]
})
export class maxValidatorDirective implements Validator {
@Input('appmax') maxo: any;
validate(control: AbstractControl): { [key: string]: any } | null {
return this.maxo ? maxValidator(control) : null;
}
}