【发布时间】:2019-05-30 00:44:49
【问题描述】:
在我的应用程序中需要一直跟踪鼠标移动。
在 app.component.ts 文件中,我放置了以下代码:
ngOnInit() {
document.addEventListener("mousemove", (e) => {
//foo()
});
})
除了对话框之外,一切都按预期工作。
对话框是Angular Material Dialog component,创建它的代码如下:
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 元素并包装整个应用程序,像这样:
当对话框打开时,事件侦听器会在后台(调用以打开对话框的组件)的组件上侦听鼠标事件,而不是在对话框本身中。
关闭对话框然后重新打开后,事件侦听器也会按预期在对话框内侦听鼠标事件。
【问题讨论】:
标签: javascript angular angular-material