Контур mat-form-field вызывает изменение цвета границы валидации, в то время как условия по-прежнему ложны

У меня есть следующий сценарий для обработки сообщения проверки:

<mat-form-field appearance="outline" floatLabel="never"> 
  <input maxlength="61" #titleInput placeholder="add title"
         matInput id="title" formControlName="name" autocomplete="off"> 
</mat-form-field>
<mat-error  *ngIf="formDTO.get('name').touched && formDTO.get('name').invalid"> 
  <mat-error *ngIf="!!formDTO.get('name').errors?.required">title cannot be blank test</mat-error>
  <mat-error *ngIf="!!formDTO.get('name').errors?.maxlength">title length exceed 60 characters</mat-error>
</mat-error>

В том же сценарии у меня есть кнопка, которая вызывает другой компонент, модальное окно, использующее опережающий ввод, как показано ниже:

<button (click)="addPerson($event)">ADD NEW </button>

Сама проверка находится в коде.ts следующим образом:

ngOnInit() {
    this.formDTO = this.fb.group({
      name: ['', [Validators.required, Validators.maxLength(60)]],
      description: '',
      dueDate: new Date(Date.now()),
      people: this.fb.array([
        this.fb.group({})
      ])
  })
}

Метод кнопки вызывает действие, которое открывает модальное окно с помощью @Effect, и оно выглядит следующим образом:

addPerson(event: MouseEvent) {
    this.store.dispatch(new fromWorkspace.ShowAddPerson());
}

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

Он не возвращает сообщение об ошибке, что является ожидаемым поведением, но схема также должна оставаться прежней.

Это ошибка для mat-form-field или мне что-то не хватает?

1 ответ

Решение

Это оказалось довольно просто. Кнопка, которая вызывала диалог:

<button (click)="addPerson($event)">ADD NEW </button>

необходимо явно указать type="button", потому что 'button' по умолчанию имеет тип 'submit', и это вызвало 'недействительный'. В итоге это выглядело так:

<button type="button" (click)="addPerson($event)">ADD NEW </button>
Другие вопросы по тегам