Angular Form内置验证器错误对象密钥

时间:2017-09-29 09:14:07

标签: angular angular-forms angular-validation

我在哪里可以获取built-in Validators错误对象键列表?

例如,如果某个字段使用required内置验证程序,那么我可以检查:

form.get('myField').hasError('required')

但并非所有错误对象键都与验证器具有相同的名称。

例如,如果我使用maxLength验证程序,则以下工作:

form.get('myField').hasError('maxLength')

1 个答案:

答案 0 :(得分:0)

可以直接查看源代码来检查这些值:

https://github.com/angular/angular/blob/master/packages/forms/src/validators.ts

在我的特定情况下,maxLength验证程序的对象键错误为maxlength(小写L)。

我通过查看源代码中的实现来解决这个问题,目前:

  static maxLength(maxLength: number): ValidatorFn {
    return (control: AbstractControl): ValidationErrors | null => {
      const length: number = control.value ? control.value.length : 0;
      return length > maxLength ?
          {'maxlength': {'requiredLength': maxLength, 'actualLength': length}} :
          null;
    };
  }

所以我正在使用:

form.get('myField').hasError('maxlength')