Angularjs-在尝试使用全局服务时无法解决所需的依赖关系

Angularjs - unable to resolve a required dependency when trying to use a global service

本文关键字:解决 关系 依赖 服务 全局 Angularjs-      更新时间:2023-09-26

我正在使用一个在多个控制器中使用的函数,所以我想创建一个服务并全局使用它。

这就是为什么我在index.html 中包含了一个commonService.js文件

'use strict';
var myApp = angular.module('myAppName');
myApp.service(['loadHttpService', '$window', '$http', function (loadHttpService, $window, $http) {
    this.loadHttpService = function (url) {
        ...
        };
        return $http.jsonp(url, {
                params: {
                    callback: "JSON_CALLBACK"
                }
            })
            .then(function (response) {
                ...
            });    
    };
}]);

并在我的homeController中使用了它,包括作为依赖项的服务,如下所示:

'use strict';    
angular.module('Home') 
.controller('HomeController', ['$scope', '$rootScope', '$http', '$window', '$state', 'loadHttpService',   
    function ($scope, $rootScope, $http, $window, $state, loadHttpService) {
        ...
        var url = "http://xxx";
        loadHttpService.loadHttp(url);
    }]);

但这让我犯了这样的错误https://docs.angularjs.org/error/$injector/unp?p0=loadHttpServiceProvider%20%3C-%20loadHttpService%20%3C-%20HomeController

为什么会发生这种情况,以及如何解决?

请注意:myAppName是我的应用程序的名称(在ng应用程序中使用)。

我是angularjs的新手,可以随意添加任何技巧,以更好的方式完成。

有很多方法可以对猫进行剥皮或注入依赖

模块1-通用

angular.module('commonServices', [])
  .service('myService', function () { //look ma, a service})

模块2

angular.module('superApp', ['commonServices'])
  .controller('notMyCtrl', function (myService) { //look ma, a service from other module})

模块3

angular.module('homeApp', ['commonServices'])
  .controller('homeCtrl', function (myService) { //look ma, a service from other module})

或者以同样的方式,您可以将home模块注入父模块(我无法想象在一个页面中引导两个应用程序的好处)