[英]: [$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.