Javascript 在AngularJS中处理路线更改
如果应用程序状态是脏的,我很难处理后退按钮并要求用户确认。关闭选项卡和重新加载已通过Javascript 在AngularJS中处理路线更改,javascript,angularjs,Javascript,Angularjs,如果应用程序状态是脏的,我很难处理后退按钮并要求用户确认。关闭选项卡和重新加载已通过onbeforeuload钩子处理 我玩过$routeChangeStart,$beforeRouteChange,但无法正确处理。 使用$routeChangeStart,在调用我的回调之前,有效地更改了路由 处理这种情况的正确方法是什么 谢谢您的帮助。您可以使用: $scope.$on('$routeChangeStart', function(next, current) { //broadcast
onbeforeuload
钩子处理
我玩过$routeChangeStart
,$beforeRouteChange
,但无法正确处理。
使用$routeChangeStart
,在调用我的回调之前,有效地更改了路由
处理这种情况的正确方法是什么
谢谢您的帮助。您可以使用:
$scope.$on('$routeChangeStart', function(next, current) {
//broadcasted before a route change
// do something here
});
更多信息请参见:在父控制器中保留脏状态的模型,所有视图共用?如果任何视图的控制器检测到脏页状态,则会显示警报/确认,并显示一个“取消”按钮,将$location.path(…)重置为脏页。我相信$locationChangeStart会在您希望的时候触发。我的道歉,我已经在使用$routeChangeStart,但我的路由已有效地更改(在URL栏中)在我处理这件事之前,我想这是一个误会;URL栏已更改,因为路由引擎正在响应该URL栏。当然已经变了!否则它怎么知道要击中哪条路线呢?:-)但是您仍然可以选择不处理路由,这就是
$routeChangeStart
的作用。我认为这是最好的方法。这次活动是好的。不幸的是,有一个bug从未被back按钮触发,它刚刚在Angular中修复: