一尘不染

AngularJS在更改路线之前确认

angularjs

是否可以在不保存更改的情况下侦听路由更改和onwindowunload来确认页面离开?

用例:

  • 用户点击返回
  • 用户在浏览器中按下后退按钮
  • 用户类型使用其他URL

如果用户单击“取消”,则停止页面/路线更改。

我看到了几个不同的示例,但没有一个工作得很正确。


阅读 211

收藏
2020-07-04

共1个答案

一尘不染

演示:http//plnkr.co/edit/Aq8uYg

在演示中,如果您更改输入的值,则在尝试返回时会注意到您。

如果未确认更改,请收听$locationChangeStart并使用event.preventDefault()以取消位置更改。

该方法具有以下优点$route.reload():当前控制器和模型不会重新实例化。因此,所有变量均与用户单击“返回”按钮保持相同。

2020-07-04