Я хочу использовать mat-errors для рендеринга ошибок на стороне сервера в моем Angular 5 SPA.
Это то, что я получил, и это работает
<mat-form-field class="col-6">
<input matInput formControlName="firstName">
<mat-error [hidden]="!form.controls.firstName.hasError('required')">This field is required and cannot be empty</mat-error>
<mat-error [hidden]="!form.controls.firstName.hasError('other')">Some other error</mat-error>
</mat-form-field>
Каждое поле формы выглядит одинаково.Поле ввода и множество тегов ошибок матов ниже.Существует много повторяющихся кодов, прикрепленных к одному полю ввода.Кроме того, добавление нового сообщения об ошибке приведет к добавлению его в каждое нужное поле.Я думаю, что это хорошее место для введения компонента, который управляет сообщениями об ошибках, и внедряется с контролем формы, он решает, какую ошибку показывать (я хочу иметь общие сообщения об ошибках для всех полей).
Так что я бы хотелэто так
<mat-form-field class="col-6">
<input matInput formControlName="firstName">
<app-mat-errors [field]="form.controls.firstName"></app-map-errors>
</mat-form-field>
и в шаблоне компонента app-mat-errors
есть весь код mat-error
, который мы имели в каждом отдельном поле
<mat-error [hidden]="!field.hasError('required')">This field is required and cannot be empty</mat-error>
<mat-error [hidden]="!field.hasError('other')">Some other error</mat-error>
etc....
При таком подходе яУ меня проблема с отображением компонента правильно.
При добавлении в теги <app-mat-errors>
, <mat-error>
внедряются в тег app-mat-errors
и не отображаются должным образом (они не стилизуются и видны постоянно, даже когда ошибки отсутствуют)
Есть ли способ, с помощью которого angular может визуализировать компонент без родительского тега?Или у вас есть идеи, как заставить его работать должным образом?Заранее спасибо.