我有一个未知的提供程序错误,我不知道如何解决它。我认为我的服务,控制器被正确宣布。我已经尝试了一切,但它不起作用。我的photosFactory工厂不起作用。它没有注入控制器。我很感激任何帮助。
我的app.js:
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
my 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}
})
}
}
})
答案 0 :(得分: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,) {
答案 1 :(得分:1)
那么,
你只声明了3个注射剂,
controller('PlaylistsCtrl', ['$scope', 'photosFactory', '$http',
但想要使用6 - 这不好。
function ($scope, $http, Util, $ionicLoading, $location, photosFactory)
记住命令。
答案 2 :(得分:0)
您还没有包含您的HTML,因此无法确认 - 您是否在索引中包含了您的服务javascript?
假设您修复了各种导入问题,这似乎是最可能的原因。
答案 3 :(得分:0)
实际上你应该只宣告angular.module('starter.controllers', [])
一次。您应该使用angular.module('starter.controllers')
代替。 (例如angular.module('starter.controllers', []).controller ...