常规 JavaScript 有 window.onbeforeunload。如何使用 HTML5 路由在 AngularJS 中模拟相同的内容?
有 $beforeRouteChange,但据我所知,它不允许您取消事件。
澄清一下:window.onbeforeunload 适用于离开页面导航,但不适用于页面内导航,例如仅通过 HTML5 历史 API 从一个 Controller 到另一个 Controller 。
最佳答案
有一个$locationChangeStart
可以取消的事件。
由于尚未记录,这里是描述它如何影响 $route
的单元测试。服务。
https://github.com/angular/angular.js/blob/v1.0.1/test/ng/routeSpec.js#L63
这不会为 window.onbeforeunload
之类的用户提供确认信息。做。您需要带上自己的对话服务并重新启动位置更改过程以获得相同的效果(或者您可以只使用同步的 $window.confirm
)。
关于angularjs - AngularJS 中的 window.onbeforeunload 等价于路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11777890/