【发布时间】:2021-01-03 13:56:15
【问题描述】:
我在路由 Angular 应用程序中有一个 @HostListener,如果您单击浏览器上的后退按钮,它只会询问您是否希望离开您所在的页面。在对话框中单击“确定”时,会弹出另一个对话框再次询问您。所以我只能假设事件是处理程序被触发了两次。
@HostListener('window:popstate', ['$event'])
onBrowserBackBtnClose(event: Event) {
// If we can go back...
if (this.canGoBack) {
alert('Are you sure you want to go back and exit the review?');
}
}
这是 Angular 中的错误还是由于路由机制导致的正常行为?有没有办法解决这个问题?或者解决它?或者,当您单击后退按钮时,也许 Angular 有更好的方法来做某事?
【问题讨论】:
-
我试图重现它,但我不能,只显示 1 个对话框。您的代码中必须有其他内容对此负责。
-
你有带路由的应用吗?
-
是的,我用的是带路由的。
标签: angular typescript