我只是想知道是否有办法知道是否有人在更改URL的路由。
举例来说,我的html中有类似的内容:
<a ng-href="#/somewhere">To somewhere</a>
我正在使用这个:
$scope.$on('$routeChangeSuccess', function (scope, next, current) {
//Some code
})
但是,我只是意识到我需要在更改URL之前运行此代码。有没有办法做到这一点,并且还具有相同的
next
和current
来知道我将重定向到何处以及从何处重定向?
最佳答案
在更改路线之前会触发$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服务发出的其他事件。
关于angularjs - 与AngularJS中的$ routeChangeSuccess相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12321218/