Javascript 不同模块的角度注入
我明白了,这个错误 错误:[ng:areq] 当我尝试以下方法时 HTML 工厂Javascript 不同模块的角度注入,javascript,angularjs,dependency-injection,Javascript,Angularjs,Dependency Injection,我明白了,这个错误 错误:[ng:areq] 当我尝试以下方法时 HTML 工厂 angular .module('dataLayerModule', []) .factory('datalayer', [$http], function (http) { //some method in here that uses http request return factory; }); 控制器 angu
angular
.module('dataLayerModule', [])
.factory('datalayer', [$http],
function (http) {
//some method in here that uses http request
return factory;
});
控制器
angular
.module(‘angularmodule’, [‘ui.module', 'dataLayerModule'])
.controller('mycontroller', ['$scope', 'datalayer', function ($scope, datalayer) {
//this is dependent on two modules being injected i.e. ‘ui.module','dataLayerModule'
}]);
如果我将工厂('dataLayerModule')模块注入从正上方剥离,它就会工作,例如
angular
.module('angularmodule’, ['ui.module'])
.controller('mycontroller', ['$scope', function ($scope) {
}]);
问题是我的“dataLayerModule”注入和它的“datalayer”工厂没有被注入,我想。
上面的javascript代码位于不同的文件中,但已正确加载到html中
我要做的是将工厂注入控制器,工厂将负责通过ajax获取json数据
这些不同模块的原因是“ui模块”来自我无法控制的第三方
如果有人能创建一个plunker,只要这个注入功能/加载正确,我将不胜感激,这让我抓狂您在将
$http
依赖项注入工厂时出现语法错误,很可能会破坏工厂代码。您当前没有在注入依赖项的数组中包含factory方法。$http
周围也没有引号,并且没有正确地注入工厂(当它作为参数传递给函数时,没有$
符号)。应该是:
angular
.module('dataLayerModule', [])
.factory('datalayer', ['$http', function($http) {
//some method in here that uses http request
return factory;
}]);
替代语法
使用上述语法(包括依赖项和数组中的函数),可能很难发现此类错误。另一种更显式的语法是将函数名传递到工厂方法中,并进一步声明函数
angular
.module('dataLayerModule', [])
.factory('datalayer', dataLayer);
dataLayer.$inject = ['$http'];
function dataLayer($http) {
//some method in here that uses http request
return factory;
}
在您的
工厂
声明中,您说:
.factory('datalayer', [$http], function (http) {})
但我认为这就是你想要的:
.factory('datalayer', ['$http', function (http) {}])
问题可能存在于“dataLayerModule”中,即使我从数据层中删除了代码,但仍然存在错误,$http以及您使用的引号看起来不同,请检查它。在处理文本区域之前,请先在word中输入文本,这是一个输入错误。我会在早上看看我能做些什么,现在在英国已经很晚了,谢谢
.factory('datalayer', [$http], function (http) {})
.factory('datalayer', ['$http', function (http) {}])