Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
Javascript Angularjs-尝试使用全局服务时无法解析所需的依赖项_Javascript_Angularjs - Fatal编程技术网

Javascript Angularjs-尝试使用全局服务时无法解析所需的依赖项

Javascript Angularjs-尝试使用全局服务时无法解析所需的依赖项,javascript,angularjs,Javascript,Angularjs,我正在使用一个在多个控制器中使用的函数,所以我想创建一个服务并在全局范围内使用它 这就是为什么我在index.html中包含了一个文件commonService.js 'use strict'; var myApp = angular.module('myAppName'); myApp.service(['loadHttpService', '$window', '$http', function (loadHttpService, $window, $http) { this.loa

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

这就是为什么我在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) {
                ...
            });    
    };
}]);
并在my 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);

    }]);
但这导致了这样的错误$injector/unpr?p0=loadHttpServiceProvider%20%3C-%20loadHttpService%20%3C-%20HomeController

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


请注意:myAppName是我的应用程序的名称(用于ng应用程序)


我对angularjs非常陌生,可以随意添加任何技巧,以更好的方式进行操作。

有很多方法可以剥猫皮或注射依赖性

模块1-通用

模块2

模块3


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

你正在创建两个不同的角度模块。这是因为myAppName是我的应用程序,home是homecontrollerI的模块。我不是100%确定,但是我相信您不能跨模块导入。我在您的代码中看到的第一个错误是:您正在服务中注入
$scope
(您不应该这样做)。因此,只需从服务的依赖项中删除
$scope
,然后尝试运行它。如果错误仍然存在,请更新您的问题。@Achu,我删除了它,但我的错误没有变化。请您重新表述答案。我发现您有两个模块:
angular.module('myAppName')
angular.module('Home')
我想您不想用
ngApp
或手动增强这两个模块。您是否将一个模块注入另一个模块?myAppName是我的应用程序的名称(在ng应用程序中使用),如果您将模块定义为:
angular.module('myAppName',['home'))
假设您拥有
angular.module('home')
,则您可以在任何模块上提供服务/控制器,并且您将有权访问它。记住:
angular.module('Home')
是getter,而
angular.module('Home.[])
是模块的setter
angular.module('commonServices', [])
  .service('myService', function () { //look ma, a service})
angular.module('superApp', ['commonServices'])
  .controller('notMyCtrl', function (myService) { //look ma, a service from other module})
angular.module('homeApp', ['commonServices'])
  .controller('homeCtrl', function (myService) { //look ma, a service from other module})