Angular.js - 通过$ route或$ routeParams访问params

Bud*_*Joe 7 angularjs angular-routing

我有一个控制器,我在其中注入$ route和$ routeParams但是当我去获取值时

$ route.routes.current.params.test - >> current is undefined $ routeParams.test - >> test is undefined

当我使用console.log($ route)或console.log($ routeParams)时,两个对象似乎都正确填充

我很困惑.如何为console.log提供值,但在我执行console.log的同一个控制器中失败?

更新:示例代码

    angular.module('TestApp')
        .controller('TestController', ['$scope', '$http', '$routeParams', '$route',
            function($scope, $http, $routeParams, $route) {
                console.log($routeParams);
                //console.log($routeParams.test);
                console.log($route.current.test);
                //console.log($route.routes);

            }]);
Run Code Online (Sandbox Code Playgroud)

Mar*_*cok 15

请参阅http://deansofer.com/posts/view/14/AngularJs-Tips-and-Tricks-UPDATED#routinghttps://groups.google.com/d/msg/angular/ib2wHQozeNE/sC3SX3QTyRgJ

在您的代码中,$ route和$ routeParams可能是异步解析的.当您在控制台中展开对象时,它们已被解析,但在控制器构造函数运行时它们不会被解析.

$scope.$on('$routeChangeSuccess', function(...) { ... })在控制器中使用,并尝试检查那里的路由属性.

$ routeChangeSuccess