带有动态参数的Angular4中的自定义验证器

时间:2019-10-13 14:10:18

标签: angular angular4-forms customvalidator

在表单密码字段中有一个特定的模式(小写字母,大写字母,特殊字符,长度)

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数组中获取更新的数据?

0 个答案:

没有答案