我目前正在学习AngularJS& Ionic通过创建一个简单的播客应用程序。 我正在尝试使用routeParams获取" itemId"但我收到以下错误:
Error: [$injector:unpr] Unknown provider: $routeParamsProvider <- $routeParams <- DetailsController
http://errors.angularjs.org/1.4.3/$injector/unpr?p0=%24routeParamsProvider%20%3C-%20%24routeParams%20%3C-%20DetailsController
minErr/
&#13;
现在这就是我传递&#34; itemId&#34;
的方式
.state('ted', {
url: '/ted/:itemId',
templateUrl: 'templates/ted-talks.html',
controller: 'DetailsController'
})
&#13;
这是我的控制器:
starter.controller("DetailsController", ["$scope", "$routeParams", "$http", function ($scope, $routeParams, $http) {
$http.get('http://api.npr.org/query?id=57&apiKey={I've taken the ID off})
.success(function(data, status, headers, config){
var x2js = new X2JS();
var jsonOutput = x2js.xml_str2json(data);
console.log(jsonOutput);
$scope.stories = jsonOutput.nprml.list.story;
if($routeParams.itemId) {
console.log('Single page id' + $routeParams.itemId);
}
})
.error(function(data, status, headers, config){
alert('There is a problem');
})
}]);
&#13;
任何想法导致此错误的原因是什么?我相信routeParams已经包含在离子框架中,因为它们提供的演示似乎有效,我无法弄清楚如何。
任何帮助都很受欢迎:)
答案 0 :(得分:32)
当您使用Angular-ui-router
时,您应该使用$stateParams
依赖项而不是$routeParams
来用于ui-router
(Angular ui-router $stateProvider
)
if($stateParams.itemId) {
console.log('Single page id' + $stateParams.itemId);
}
$routeParams
可用于ngRoute
模块(AngularJS 路由$routerProvider
)