0

我在哪里可以获得内置验证器的错误对象键列表?

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

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

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

例如,如果我使用maxLength验证器,则以下内容将不起作用

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

4

1 回答 1

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')

于 2017-09-29T09:14:07.060 回答