Javascript Angularjs-尝试使用全局服务时无法解析所需的依赖项
我正在使用一个在多个控制器中使用的函数,所以我想创建一个服务并在全局范围内使用它 这就是为什么我在index.html中包含了一个文件commonService.jsJavascript 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
'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})