Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AngularJS中处理路线更改_Javascript_Angularjs - Fatal编程技术网

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中修复: