#angular #angular-material #mat-dialog
Вопрос:
Я использую диалоговое окно угловой материал (v7), у нас есть редактируемые ячейки в диалоговом окне и на странице ниже, а также у нас есть редактируемые ячейки, такие как область текста/ввод текста.
Когда откроется диалоговое окно, если я нажму ctrl z, а затем отменю операцию, работающую как в диалоговом окне, так и на фоновой странице
Как отключить все элементы управления (например, ctrl z) на фоновой странице при открытии диалогового окна.
для получения живого примера проблемы, пожалуйста, ознакомьтесь с последним примером на следующей странице https://material.angular.io/components/dialog/examples
Комментарии:
1. Я могу воспроизвести в Chrome 94.0.4606.81, если в диалоговом окне нет фокуса в поле. Я не могу воспроизвести в FF 93.0. Используя пример внизу страницы здесь: material.angular.io/components/dialog/examples
2. Эта проблема может быть связана с: github.com/angular/components/issues/13054
Ответ №1:
Проведя некоторое исследование, я обнаружил, что это поведение по умолчанию для входных данных HTML,
Если вы отмените последний ввод здесь дважды, то предыдущий ввод автоматически получит фокус.
Один из способов решить эту проблему-внести все предыдущие данные readonly
openDialog(): void {
this.readonly = true;
const dialogRef = this.dialog.open(DialogOverviewExampleDialog);
dialogRef.afterClosed().subscribe((result) => {
this.readonly = false;
});
}
<mat-form-field>
<input
matInput
[(ngModel)]="name"
placeholder="What's your name?"
[readonly]="readonly"
/>
</mat-form-field>