我的代码是这样的
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
当我仅注入我的第一个服务时,它可以正常工作。但是当第二秒来临时 谁能指出我做错了什么?
问题是您有两个模块
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]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句