angularjs - 与AngularJS中的$ routeChangeSuccess相反

标签 angularjs routes angularjs-routing

我只是想知道是否有办法知道是否有人在更改URL的路由。

举例来说,我的html中有类似的内容:

<a ng-href="#/somewhere">To somewhere</a>

我正在使用这个:
$scope.$on('$routeChangeSuccess', function (scope, next, current) {
    //Some code
})

但是,我只是意识到我需要在更改URL之前运行此代码。有没有办法做到这一点,并且还具有相同的nextcurrent来知道我将重定向到何处以及从何处重定向?

最佳答案

在更改路线之前会触发$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/

相关文章:

angularjs - 在 angularjs 中使用 ng-repeat 访问嵌套数组

javascript - Angular 搜索优化

javascript - Angular 从复选框中获取选定值

javascript - AngularJS- "Duplicates in a repeater not allowed"

angular - 在单个 Angular 应用程序中路由多个项目

jquery - BlueImp 文件上传 "Error: Method Not Allowed"- Laravel 4 路由问题

reactjs - 当用户未登录时重定向到登录。 Reactjs

AngularJS 显示来自 routeProvider 的对话框

javascript - Angular 路由器不工作

javascript - 具有自己独立路由器的 Angular Apps