繁体   English   中英

错误:$ injector:unpr未知提供程序:itemslistProvider <-

[英]Error: $injector:unpr Unknown Provider: itemslistProvider <-

我已经调试了大约几天的代码,但找不到解决方案。 我已经阅读了angularjs文档以及该错误的几个现有SO问题,但仍无法发现由于代码失败而导致的任何错误。

这是我的一项工作,我几乎完成了工作并为其编写了代码,但是我只是停留在显示类别中的项目上。 用于显示类别的代码可以正常工作,但用于显示项目的代码却非常相似。 我真的很困惑,死胡同。 我要求您只给我一个提示或可能会出错的行。 我并没有要求整个解决方案,因为它违反了荣誉守则。

所以,这是文件

index.html

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <link rel="stylesheet" href="css/styles.css">
 <title>My Restro</title>
</head>
<body ng-app="MenuApp">
<ui-view></ui-view>

<!-- Libraries -->
<script src="lib/angular.min.js"></script>
<script src="lib/angular-ui-router.min.js"></script>

 <!-- Modules -->
 <script src="src/menuapp/menuapp.module.js"></script>
 <script src="src/menuapp/data.module.js"></script>
 <!-- Routes -->
 <script src="src/routes.js"></script>

 <!-- 'MenuApp' module artifacts -->
 <script src="src/menuapp/menudata.service.js"></script>
 <script src="src/menuapp/categories.component.js"></script>
 <script src="src/menuapp/categories.controller.js"></script>
 <script src="src/menuapp/items.component.js"></script>
 <script src="src/menuapp/item-detail.controller.js"></script>
 <!-- <script src="src/menuapp/main-menuapp.controller.js"></script> -->
</body>
</html>

item-detail.controller:

(function () {
  'use strict';

  angular.module('MenuApp')
  .controller('ItemDetailController', ItemDetailController);

  // 'itemlist' is injected through state's resolve
  ItemDetailController.$inject = ['MenuDataService','itemslist'];
  function ItemDetailController(MenuDataService,itemslist) {
    var itemDetailCtrl = this;
    itemDetailCtrl.itemslist=itemslist;
   }

   })();

routes.js

(function () {
 'use strict';

  angular.module('MenuApp')
  .config(RoutesConfig);

   RoutesConfig.$inject = ['$stateProvider', '$urlRouterProvider'];
   function RoutesConfig($stateProvider, $urlRouterProvider) {

  .........//other states code.....
  //items state code
  .state('items', {
    url: '/items/{categoryShortName}',
    templateUrl: 'src/menuapp/templates/item-detail.template.html',
    controller: 'ItemDetailController as itemDetailCtrl',
    resolve: {
        itemlist: ['$stateParams', 'MenuDataService',
        function ($stateParams, MenuDataService) {
          return MenuDataService.getItemsForCategories($stateParams.categoryShortName);
        }]
    }
  });
 }

 })();

在您的路线中,您具有解析名称itemlist,并将其注入为itemslist。 我应该是这样的。

ItemDetailController.$inject = ['MenuDataService','itemlist'];
function ItemDetailController(MenuDataService,itemlist) {
  var itemDetailCtrl = this;
  itemDetailCtrl.itemlist=itemlist;
}

})();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM