我有一个控制器,我在其中注入$route和$routeParams但是当我去获取值时
$route.routes.current.params.test – >>当前未定义
$routeParams.test – >>测试未定义
当我使用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); }]);
见
http://deansofer.com/posts/view/14/AngularJs-Tips-and-Tricks-UPDATED#routing和
https://groups.google.com/d/msg/angular/ib2wHQozeNE/sC3SX3QTyRgJ
在您的代码中,$route和$routeParams可能是异步解析的.当您在控制台中展开对象时,它们已被解析,但在控制器构造函数运行时它们不会被解析.
在控制器中使用$scope.$on(‘$routeChangeSuccess’,function(…){…}),并尝试检查那里的路由属性.