Как вызвать функцию проверки внутри пользовательского метода проверки 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;
  }
}

0 ответов

Другие вопросы по тегам