我正在设置两种自定义方法。一个用于整个应用程序的全局通信,另一个用于处理 http 请求。我的 http 请求模块需要我的 GlobalService 才能运行。如何将我的 GlobalService 提供程序传递给我的 CustomHTTP 提供程序?
自定义HTTP
angular.module("customHTTPService", []).factory("$chttp", [
"$http", "GlobalService", function($http, $parse) {
var chttp;
return chttp = function(method, url) {
return $http({
method: method,
url: GlobalService.apiRoot + url
}).success(function(data, status, headers, config) {
return [data, status, headers, config];
}).error(function(data, status, headers, config) {
return [data, status, headers, config];
});
};
}
]);
我的全球服务提供商
angular.module('GlobalService', []).factory("GlobalService", function($rootScope) {
var sharedService, _ref;
sharedService = {};
return sharedService.apiRoot = (_ref = window.location.hostname) === "0.0.0.0" || _ref === "localhost" ? "http://localhost:3000/api/" : "http://website.com/api/";
});
最后..我的应用实例化
window.app = angular.module('web_client', ['GlobalService', 'customHTTPService'], function($routeProvider, $locationProvider) {});
所以为了测试这个,我把它扔到我的一个控制器中:
this.SettingsController = function($scope, $location, GlobalService, $http, $chttp) {
$.v = $chttp;
};
然后我尝试在控制台中运行它..
$.v('get', '/index.html');
哪个返回:
ReferenceError: GlobalService is not defined
甚至更上游一点,如果我把它放在我的 customHTTPService 模块中......:
console.log(GlobalService);
我犯了同样的错误。
将模块相互传递的正确方法是什么?有什么我可以做得更好的吗?