角度2验证器“”

时间:2016-12-21 07:52:11

标签: javascript validation angular typescript

在angular2中,我创建了一个自定义验证器来再次验证正则表达式的值。 我知道其中有一个版本,但我遇到了错误,想知道出了什么问题。

我收到了这个错误:

  

检查后表情发生了变化。上一个值:'true'。   当前值:'false'。

这是我的验证员:

import { FormControl,Validator,AbstractControl,ValidatorFn } from '@angular/forms';

export const PatternValidator = (regex:any):ValidatorFn  => {

  return (control:AbstractControl):{[key: string]: any} => {

    var patt = new RegExp(regex);
    if(!patt.test(control.value)){
      return {
        valid: {valid:false}
      };
    }
    return null;
  };
};

在这种情况下,它是一个正则表达式。但我也用简单的字符串比较尝试了相同的错误结果。

这是我要验证的字段之一:

 <div *ngIf="Parameter.Type=='xyz'">
        <input class="form-control" [id]="FieldId" type="text" formControlName="{{FieldId}}" />
    </div>

这就是我设置验证器的方法:

ngOnInit(){
         this.InitField(); //need to set id in oninit
         this.ValidationForm.addControl(this.FieldId,new FormControl(this.myValue,Validators.compose([Validators.required,CustomValidators.PatternValidator("^[a-zA-Z]?$")])));
    }

只有初始值(此处为this.myValue)在启动时无效时才会出现错误。如果它有效并且我通过更改输入字段值使值无效,则验证器工作正常......

0 个答案:

没有答案