来自不同模块的Angular注入
Angular injection from different modules
我得到了这个错误
错误:[ng:areq] http://errors.angularjs.org/1.4.7/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20undefined
当我尝试下面的
HTML<div ng-app="angularmodule">
<div ng-controller="mycontroller">
<div class="mydirective" </div>
</div>
指令angular
.module('ui.module', [])
.directive('mydirective', function () {
//some directive stuff in here, restricted as ‘C’
}
};
});
工厂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 '注入和它的'数据层'工厂没有被注入,我想。上面的angular javascript代码位于不同的文件中,但都被正确加载到html.
我要做的是将工厂注入控制器,工厂将负责通过ajax获取json数据
这些不同模块的原因是"ui模块"来自第三方,我无法控制。
如果有人能创建一个活塞,这个注入只是正常运行/加载我将非常感激,这是驱使我疯了
在您的factory
声明中,您说:
.factory('datalayer', [$http], function (http) {})
但我认为这是你想要的:
.factory('datalayer', ['$http', function (http) {}])
在将$http
依赖项注入工厂的方式上存在语法错误,这很可能会破坏工厂代码。当前没有在注入依赖项的数组中包含工厂方法。$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;
}
相关文章:
- 注入工厂时,Angular停止工作
- 注入$window在angular,有什么用
- 正在将lodash注入Angular提供程序
- 我可以在不注入控制器的情况下在 Angular 中使用全局常量吗?
- 在运行时从Angular注入器检索实例
- 是否可以将服务注入Angular 1.5组件's templateUrl属性
- $injector:modulerr将自定义模块注入Angular应用程序
- angular.js为工厂注入功能
- Angular正在提供程序中注入$rootScope
- Angular Jasmine UI路由器为测试注入解析值
- 在Angular 2中的另一个服务中注入自定义服务
- Angular 2 注入了全局依赖关系
- Angular 1.4.2注入的$cookies不起作用
- 你怎么能要求DOM在Angular注入正确的变量之前不加载图片呢?
- 来自不同模块的Angular注入
- Angular注入器自调用函数语法错误
- 尝试使用角网格化时,Angular注入器出错
- Angular注入了长内容的页面会让整个页面在页面顶部下方加载,切断了页面标题
- Angular 2 -注入由HTML选择器创建的组件
- Angular注入指令link函数到根作用域