В следующий раз, пожалуйста, создайте свою собственную редактируемую демонстрацию, чтобы мы могли поработать над ней.В любом случае, мое решение вашей проблемы - остановить распространение события нажатием клавиши escape.Это делается путем привязки события keydown
.
Я сделал демо , используя мое решение, в результате чего выбор коврика помещается в ящик для коврика.
Однако, обратите внимание, что если вы хотите использовать клавишу escape после выбора чего-либо на mat-select, вам придется «расфокусировать» mat-select, нажав / кликнув за пределами mat-select, чтобычто выбор циновки больше не является «сфокусированным».
<mat-form-field>
<mat-label>Cars</mat-label>
<mat-select (keydown.escape)="$event.stopPropagation()">
<mat-option *ngFor="let food of foods" [value]="food.value">
{{food.viewValue}}
</mat-option>
</mat-select>
</mat-form-field>
Это не позволит клавише «escape» закрывать выдвижной ящик, когда фокусировка выбрана, но при этом можно закрыть выдвижной ящик с матом.клавиша «escape», когда вы не используете mat-select.