В моем приложении Ineed для постоянного отслеживания движения мыши.
В файле app.component.ts я поместил следующий код:
ngOnInit() {
document.addEventListener("mousemove", (e) => {
//foo()
});
})
Все работает как положенокроме того, внутри диалога.
Диалог представляет собой Компонент Angular Material Dialog и код его создания выглядит следующим образом:
openModal() {
const dialogRef = this.dialog.open(ModalComponent, {
panelClass: 'generic-dialog-container',
data: {
header: 'Leave session',
content:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
isInfo: false,
},
});
this.dialogSub = dialogRef.componentInstance.isApprove.subscribe(
isApprove => {
if (isApprove) {
this.navigateBack();
}
},
);
}
Я попытался добавить прослушиватель событийвнутри модального OnInit - не сработало, плюс я увидел, что когда я добавляю его в документ app.component.ts к документу, слушатель добавляется к элементу body и оборачивает все приложение, как показано ниже:
![enter image description here](https://i.stack.imgur.com/lxaqT.jpg)
Пока диалоговое окно открыто, прослушиватель событий прослушивает события мыши на компоненте в фоновом режиме (компонент, который вызвал открыть диалоговое окно), но не всамо диалоговое окно.
После закрытия диалогового окна и его повторного открытия прослушиватель событий, как и ожидалось, прослушивает события мыши внутри диалогового окна.