未知提供者:$ routeParamsProvider < - $ routeParams

Rad*_*ddy 17 javascript routing angularjs angularjs-routing angular-ui-router

我目前正在通过创建一个简单的播客应用程序来学习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/
Run Code Online (Sandbox Code Playgroud)

现在这是我传递"itemId"的方式

  .state('ted', {
    url: '/ted/:itemId',
    templateUrl: 'templates/ted-talks.html',
    controller: 'DetailsController'
  })
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

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');
  })
}]);
Run Code Online (Sandbox Code Playgroud)

是什么原因导致这个错误?我相信routeParams已经包含在离子框架中,因为它们提供的演示似乎有效,我无法弄清楚如何.

任何帮助都很受欢迎:)

Pan*_*kar 32

当你使用时,Angular-ui-router你应该使用$stateParams依赖,而不是$routeParams用于ui-router(Angular ui-router $stateProvider)

if($stateParams.itemId) {
    console.log('Single page id' + $stateParams.itemId);
}
Run Code Online (Sandbox Code Playgroud)

$routeParams可用于ngRoute模块(AngularJS路由$routerProvider)