В поле пароля формы есть определенный шаблон (маленький алфавит, заглавный алфавит, специальный, длина)
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 ()?