#angular #angular-material #angular-material2
#угловой #angular-material #angular-material2
Вопрос:
У меня возникли некоторые проблемы с отображением mat-ошибки в chiplist. В соответствии с этой проблемой GitHub errorState
, значение должно быть установлено явно, чтобы показывать ошибку mat-error.
Это решение работает нормально, но только тогда, когда список элементов имеет фокус. Это не работает, когда список файлов не сфокусирован. Смотрите этот пример. В моем случае список допустимых результатов изменяется позже из-за некоторого вызова API, когда список элементов не имеет фокуса.
Как я могу показать ошибку mat-error, когда список файлов не имеет фокуса?
Комментарии:
1. Можете ли вы обновить свою ссылку на stackblitz, чтобы указать URL-адрес редактора, а не URL-адрес приложения?
2. @Marshal это было глупо с моей стороны. Я обновил ссылку
Ответ №1:
Настройка errorState
, похоже, работает без фокуса, что обозначается поворотом заполнителя и подчеркивания red
.
Я подозреваю, что вам mat-error
также нужно отобразить, однако вам не хватает вашего *ngIf
.
<mat-error *ngIf="chipList.errorState">Too many chips</mat-error>
STACKBLITZ
Комментарии:
1. Есть идеи, почему это не работает без ngif?
Ответ №2:
Вы должны добавить средство проверки и предотвратить добавление недопустимого элемента следующим образом. Например:
Компонент:
export class ExampleComponent {
items = [];
emailFormControl = new FormControl('', [Validators.email]);
addItem(event) {
if (this.emailFormControl.valid) {
items.push(event.value)
}
}
.
.
.
}
Шаблон:
<mat-form-field>
<mat-chip-list [formControl]="emailFormControl">
.
.
.
</mat-chip-list>
</mat-form-field>