用户在浏览器上单击“返回”之前弹出

时间:2019-03-28 15:28:25

标签: html angular navigation

尝试在用户从浏览器单击“后退”按钮并退出应用程序之前获取消息。 在我的应用程序中,除非他使用应用程序内的按钮,否则用户无法返回。 所以我想在用户使用浏览器中的“后退”按钮时弹出一些消息。

我设法获得了单击返回按钮的事件,但之后无法弹出弹出窗口

window.onpopstate = function (e) {

  this.dialog.open(PopupComponent, {
    data: {
      data: optionsBox,
      hint: 'test',
    }
  });
}

获取错误:Property 'dialog' does not exist on type 'WindowEventHandlers'.ts(2339)

1 个答案:

答案 0 :(得分:0)

之所以会发生这种情况,是因为JavaScript函数会创建一个新的上下文,而对话框服务将不可用。为了避免这种现象,您需要使用保留当前上下文的箭头功能。

window.onpopstate = (e) => {
  this.dialog.open(...);
}