在表单密码字段中有一个特定的模式(小写字母,大写字母,特殊字符,长度)
components.ts
初始化一个布尔数组以跟踪在keyup上更新的模式:
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正在外部更新。
如何在password_pattern()中的passwd_pattern_ele数组中获取更新的数据?