我定义了一些路线:
angular.module('myApp',[]) .config('$routeProvider',function($routeProvider) { $routeProvider.when('/aaa',{ templateUrl: '/111.html' }) .when('/bbb',{ templateUrl: '/222.html'}); });
angular.module('myApp') .run(['$rootScope',function($rootScope) { $rootScope.$on('$routeChangeSuccess',function(scope,current,pre) { // how to get current route name,e.g. /aaa or /bbb console.log('Current route name: ' + ???); } }]);
但我不知道如何得到它。我可以得到templateUrl,而不是路由名称。
更新
一个更复杂的用例:
$routeProvider.when('/users/:id',{ templateUrl: '/show_user.html' })
如果当前路径为:
/users/12345
您可以注入$ location服务并使用其path()函数。
angular.module('myApp') .run(['$rootScope','$location','$routeParams',function($rootScope,$location,$routeParams) { $rootScope.$on('$routeChangeSuccess',function(e,pre) { console.log('Current route name: ' + $location.path()); // Get all URL parameter console.log($routeParams); }); }]);
更新
如果你想有一个你当前路由参数的数组,只需像上面那样注入$ routeParams服务。