2

我有一个未知的提供程序错误,我不知道如何解决它。我认为我的服务、控制器已正确声明。我已经尝试了一切,但它不起作用。我的 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}
                      })
                  }
              }
          })
4

4 回答 4

2

我认为这是因为您没有在工厂中注入 $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,) { 
于 2014-10-23T12:22:03.220 回答
1

出色地,

你只申报了 3 种注射剂,

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

但想使用 6 - 那不好。

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

注意顺序。

于 2014-10-23T13:01:17.313 回答
0

其实你应该只申报angular.module('starter.controllers', [])一次。你应该angular.module('starter.controllers')改用。(例如。angular.module('starter.controllers', []).controller ...

于 2015-11-27T02:53:04.440 回答
0

您没有包含您的 HTML,因此无法确认 - 您是否在索引中包含了您的服务 javascript?

假设您解决了各种导入问题,这似乎是最可能的原因。

于 2015-11-26T21:43:55.017 回答