Пользовательский валидатор в Angular4 с динамическим параметром - PullRequest
0 голосов
/ 13 октября 2019

В поле пароля формы есть определенный шаблон (маленький алфавит, заглавный алфавит, специальный, длина)

component.ts

Инициализация логического значениямассив для отслеживания шаблона, который обновляется onkeyup:

passwd_pattern_ele: boolean[] = new Array(4);

Formcontrol для поля пароля:

nPassword: ['', [Validators.required, Validators.minLength(8), password_pattern(this.passwd_pattern_ele).bind(this)]]

Пользовательский валидатор:

Эта функция принимает массив passwd_pattern_ele в качестве параметракоторый динамически обновляется

function password_pattern(pass_pat_ele: boolean[]){
  return (control: AbstractControl): { [key: string]: any } | null =>{
    for (let i = 0; i < pass_pat_ele.length; i++) {
      var element = pass_pat_ele[i];
      if(!element){
        return { 'pass_pattern' : pass_pat_ele };
      }
    }
    return null;
  };
}

passwd_pattern_ele, который передается как параметр, не обновляется в стороне функции и является пустым, как при инициализации. passwd_pattern_ele обновляется снаружи.

Как получить обновленные данные в массиве passwd_pattern_ele внутри password_pattern ()?

...