Почему я получаю ошибки проверки при сбросе формы с FormBuilder? - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю в угловых 6 приложений.Я работаю с FormBuilder.У меня есть форма, которая выглядит следующим образом:

  <form [formGroup]="createInvitationForm" (ngSubmit)="createInvitation()">
    <mat-form-field class="full-width-input">
      <input matInput type="text" formControlName="invitationComment" placeholder="Send a comment to the group(s)." required>
      <mat-error *ngIf="createInvitationForm.get('invitationComment').hasError('required')">
        Invitation comment required
      </mat-error>
    </mat-form-field>
    <button mat-raised-button type="submit" color="primary" [disabled]="selectedGroups.length === 0 || !createInvitationForm.valid">Send invitation to selected group(s)</button>
  </form>

Это очень простая форма.Ввод текста и кнопка отправки:

enter image description here

Как видите, у меня есть ошибка в мате под вводом, которая сообщает пользователю "Пригласительный комментарийТребуется ", если они не вводят комментарий.

Когда пользователь нажимает кнопку Отправить, приглашение отправляется, и я очищаю форму следующим образом:

this.createInvitationForm.reset();

Однако, когда я делаю этоформа выглядит следующим образом:

enter image description here

Другими словами, теперь появляется ошибка проверки.

В каком-то смыслеmat-error делает то, что должен делать: когда форма сбрасывается, в текстовом вводе нет данных, что делает форму недействительной, поэтому она отображает сообщение.Но в другом смысле, не должно ли оно вести себя так, как если бы оно было повторно инициализировано (то есть форма не является недействительной при инициализации только потому, что в текстовом вводе нет данных).

Если мое ожидание того, как сбросить () если работа отключена, сообщите мне способ сброса формы без ее аннулирования.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Триллер близок.

Это был this.createInvitationForm.controls ['InvisionComment']. SetErrors (null);

0 голосов
/ 20 февраля 2019

Попробуйте добавить следующую часть this.createInvitationForm.setErrors(null);, чтобы сбросить ошибки управления формой.

...