我只是想知道是否有办法知道某人是否正在更改网址的路线。
作为一个例子,我在html中有这样的东西:
<a ng-href="#/somewhere">To somewhere</a>
我 使用此:
$scope.$on('$routeChangeSuccess', function (scope, next, current) {
//Some code
})
但是,我刚刚意识到我需要在更改URL之前运行此代码。有没有办法解决这个问题,并且有同样的next
和current
知道我将在何处重定向以及从何处重定向?
答案 0 :(得分:24)
在路由更改之前会触发$routeChangeStart
事件。它支持下一个和当前参数,完全像您期望的那样。所以,为了覆盖你的用例你可以写:
$scope.$on('$routeChangeStart', function(scope, next, current){
console.log('Changing from '+angular.toJson(current)+' to '+angular.toJson(next));
});
以下是完整的jsFiddle,说明了这一点:http://jsfiddle.net/pkozlowski_opensource/9MnE9/
您可能还想检查$ route文档(https://docs.angularjs.org/api/ngRoute/service/$route)以查看$ route服务发出的其他事件。