Можно ли получить значение минимальной длины из formcontrol? - PullRequest
1 голос
/ 03 мая 2019

Итак, у меня есть подтверждение формы.И мой вопрос, могу ли я получить, например, значение minlength, которое я передал при создании formControl?

Я не нашел никакой информации.

Это мой тупой компонент, и я хочу получить значение minlength дляперейти к информации.Теперь мне нужно передать его через @Input ().

title: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(20)]]

.

<div class="validation-window">
  <p *ngIf="errors.required">
    {{field}} required
  </p>
  <p *ngIf="formControl.hasError('minlength')">
      {{field}} at least {{minLegth}} characters
  </p>
  <p *ngIf="formControl.hasError('maxlength')">
      {{field}} at least {{maxLength}} characters
  </p>
</div>

Я хочу заменить {{maxLength}} на что-то вроде formControl.validators.minlength.value;

Ответы [ 2 ]

1 голос
/ 03 мая 2019

Да, вы можете получить доступ к номеру длины, как в maxlength, так и в minlength.Вы можете найти его внутри объекта error, где он находится под .maxlength.requiredLength && minlength.requiredLength.Есть также поле с actualLength, но вам оно, кажется, не нужно, но если вы иногда это делаете!:)

<p *ngIf="formControl.hasError('maxlength')">
  {{field}} at max {{formControl.errors.maxlength.requiredLength}} characters
</p>

<p *ngIf="formControl.hasError('minlength')">
  {{field}} at least {{formControl.errors.minlength.requiredLength}} characters
</p>

DEMO

0 голосов
/ 03 мая 2019

Боюсь, что в angular такой вещи нет, например, в angular.io, в примере встроенных валидаторов, они используют необработанное кодированное значение для ошибки минимальной длины Встроенные валидаторы

<div *ngIf="name.errors.minlength">
    Name must be at least 4 characters long.
</div>

Но вы можете сохранить значение minLength / maxLength в переменной и отобразить эту переменную вместо этого.

...