常规JavaScript有window.onbeforeunload。使用HTML5路线在AngularJS中如何效仿?
有$ beforeRouteChange,但是它不允许你尽可能地取消事件。
要澄清:window.onbeforeunload可以用于从页面导航,但不用于页面内导航,例如通过HTML5历史API从一个控制器转到另一个控制器。
有一个$ locationChangeStart事件可以被取消。
由于尚未记录,因此单元测试描述了它如何影响$路由服务。
https://github.com/angular/angular.js/blob/v1.0.1/test/ng/routeSpec.js#L63
这不能像window.onbeforeunload那样为用户提供确认。您需要携带自己的对话服务并重新启动位置更改过程以获得相同的效果(或者您可以使用同步的$ window.confirm)。