簡體   English   中英

:[$ injector:unpr] angularjs中的未知提供程序無法將工廠注入控制器

[英]: [$injector:unpr] Unknown provider in angularjs can't inject factory into controller

我有一個未知的提供程序錯誤,我不確定如何解決。 我認為我的服務,控制器已正確聲明。 我已經嘗試了一切,但是沒有用。 我的photosFactory工廠無法正常工作。 它沒有注入控制器。 我將不勝感激。

我的app.js:

 angular.module('starter', ['ionic', 'starter.controllers', 'starter.services']) 

我的controllers.js:

 angular.module('starter.controllers', [])
 .controller('PlaylistsCtrl', ['$scope', 'photosFactory', '$http', function ($scope, $http, Util, $ionicLoading, $location, photosFactory) {

        $ionicSideMenuDelegate.canDragContent(true);

        $scope.allDeals = [];


        $scope.navigate = function(url){
            $location.path(url);
        };
        photosFactory.getPhotos().success(function(data){
            $scope.allDeals= data;

          });
        }])

我的services.js:

angular.module('starter.services', [])

         .factory('photosFactory', function($http) {
              return{
                  getPhotos : function() {
                      return $http({
                          url: 'http://www.somecompany.co.uk/bigcapi/feeds/deals/company_id/88',
                          method: 'GET',
                          params: {all: '1', mobileready: 1}
                      })
                  }
              }
          })

我認為這是因為您沒有在工廠中注入$ http。 試試吧

.factory('photosFactory', [ '$http', function($http) {
              return{
                  getPhotos : function() {
                      return $http({
                          url: 'http://www.somecompany.co.uk/bigcapi/feeds/deals/company_id/88',
                          method: 'GET',
                          params: {all: '1', mobileready: 1}
                      })
                  }
              };
          }]);

聲明控制器時也存在問題

['$scope', 'photosFactory', '$http', function ($scope, $http, Util, $ionicLoading, $location, photosFactory) {

訂單很重要,所以您必須有這樣的東西

['$scope', 'photosFactory', '$http', 'Util', '$ionicLoading', '$location', function ($scope, photosFactory, $http, Util, $ionicLoading, $location,) { 

好,

您只聲明了3種注射劑,

controller('PlaylistsCtrl', ['$scope', 'photosFactory', '$http', 

但想使用6-不好。

function ($scope, $http, Util, $ionicLoading, $location, photosFactory)

注意順序。

您尚未包含HTML,因此無法確認-您是否在索引中包含了服務javascript?

假設您解決了各種導入問題,這似乎是最可能的原因。

實際上,您只應該聲明angular.module('starter.controllers', []) 您應該angular.module('starter.controllers')使用angular.module('starter.controllers') (例如angular.module('starter.controllers', []).controller ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM