Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在全球范围内提供AngularJS内置服务?_Angularjs - Fatal编程技术网

如何在全球范围内提供AngularJS内置服务?

如何在全球范围内提供AngularJS内置服务?,angularjs,Angularjs,代码 angular.module('appName').factory('serviceName', ['$http', function ($http) { 在这里,我将Angular的$http服务提供给我的服务,但我如何使它可用于我应用程序中的所有服务,而不必每次在应用程序中的每个服务中定义它(假设我应用程序中的每个服务都需要访问$http)? 请提供代码样本。非常感谢 在这个问题上似乎没有什么帮助 angular.module('appName').factory('globaliz

代码

angular.module('appName').factory('serviceName', ['$http', function ($http) {
在这里,我将Angular的$http服务提供给我的服务,但我如何使它可用于我应用程序中的所有服务,而不必每次在应用程序中的每个服务中定义它(假设我应用程序中的每个服务都需要访问$http)? 请提供代码样本。非常感谢

在这个问题上似乎没有什么帮助

angular.module('appName').factory('globalize', ['$http', function ($http) {
    window.$http = $http;
}]);
e、 g


好了,它现在是全球性的。但这不是最好的做法…

但依赖注入就是这样工作的你不定义它,而是注入它。它在angular的最新版本中不起作用(如果你从未在某个地方注入
globalize
),全局定义某个东西与依赖注入的想法相反。是的,你必须在某个地方注入它,不管你用哪个角度。对于较新的版本,您可以使用resolves来注入它。正如我所说,这不是一个好的实践,但这就是我们解决问题的方法。如果您决定使用window来存储它,那么这就是不创建服务的方法:
window.$http=angular.element(document.querySelector(“[ng app]”)injector().get(“$http”)