将多个服务注入控制器会引发错误-AngularJs
我的代码是这样的将多个服务注入控制器会引发错误-AngularJs,angularjs,Angularjs,我的代码是这样的 Services.JS angular.module('RateRequestApp.services', []).factory('rateRequestService', ['$http', rateRequestService]); function rateRequestService($http) { var service = { getData: getData}; return service; function getData
Services.JS
angular.module('RateRequestApp.services', []).factory('rateRequestService', ['$http', rateRequestService]);
function rateRequestService($http) {
var service = { getData: getData};
return service;
function getData() {
return $http({
method: 'Get',
url: '../services/asas.asmx/GetReadOnlyData?shipmentID=' + getQuery('shipmentId')
});
}
function getQuery(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
}
angular.module('RateRequestApp.services', []).factory('rePrintService', ['$http', rePrintService]);
function rePrintService($http) {
var service = { getReprintData: getReprintData };
return service;
function getReprintData() {
return $http({
method: 'Get',
url: '../services/asas.asmx/RePrint?shipmentID=' + getQuery('shipmentId')
});
}
function getQuery(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
}
Controller.JS
angular.module('RateRequestApp.controllers', []).controller
('ReadOnlyController', [
'$scope', 'rateRequestService', 'rePrintService', '$controller',
function($scope, rateRequestService, rePrintService, $controller) {
$scope.rateData = [];
rateRequestService.getData().success(function(response) {
$scope.rateData = response;
console.log(JSON.stringify(response));
}).
error(function(data, status, headers, config) {});
rePrintService.getReprintData().success(function(response) {
}).
error(function(data, status, headers, config) {});
}
]);
App.js
angular.module('RateRequestApp', [
'RateRequestApp.services',
'RateRequestApp.controllers',
'ui.bootstrap'
]);
我觉得一切都很好,但这是个错误
Error: [$injector:unpr] Unknown provider: rateRequestServiceProvider <- rateRequestService
错误:[$injector:unpr]未知提供程序:rateRequestServiceProvider问题是您有两个模块
angular.module('RateRequestApp.services', [])
定义,因此第二个将覆盖包含rateRequestService
服务的第一个
要正确检索现有模块,需要使用getter语法:
angular.module('RateRequestApp.services').factory('rePrintService', ['$http', rePrintService]);
请注意,模块名称后面没有依赖项数组[]
或者您可以使用如下的链表示法:
angular.module('RateRequestApp.services', [])
.factory('rateRequestService', ['$http', rateRequestService])
.factory('rePrintService', ['$http', rePrintService]);
我注意到的第一件事是,代码本身需要更好地组织起来,但无论如何。
第二件事是,您需要将创建的模块添加到“RateRequestApp.controllers”模块中。因此,代码完全类似于:
angular.module('RateRequestApp.controllers', ['RateRequestApp.services']).controller
这+上一个答案应该可以。
祝你好运你能在这里添加一个解决方案吗?我可以使用我的两项服务吗?@Athul在你上面的问题中,你刚刚定义了你的两项服务,但从未使用过,也许你必须提供关于你的使用的进一步信息,即你使用服务的控制器。