Как упоминалось в оригинальном сообщении и в комментариях, короткий ответ - event.stopPropagation()
на событие нажатия кнопки, чтобы остановить всплытие события до mat-form-field
.
Я также хотел добавить, как событие щелчка на mat-form-field
открывает компонент mat-select
.
mat-form-field
Компонент предназначен для переноса элементов управления полем формы, таких как mat-select
, и для удобства пользователя при щелчке он имитирует событие нажатия на дочерний элемент управления формы, который он переносит.
Как это работает, mat-select
реализует абстрактный класс MatFormFieldControl
, который имеет метод onContainerClick
. Что делает mat-form-field
, так это то, что у него есть ссылка на его дочерний элемент управления формы, и при нажатии он проверяет, реализует ли дочерний элемент управления метод onContainerClick
и, если это так, он просто вызывает метод. Следовательно, фокусировка и открытие mat-select
в этом случае, даже если событие click не было вызвано в элементе управления формы выбора.