Angular和requirejs,提供注射器
Angular and requirejs, provider with injectors
我的应用程序有一个工作版本,现在我正试图将其拆分为requirejs模块。我很难找到一个有注射器的供应商。当我把它引入require-js时,它似乎不想正确地注入我的提供者。我需要一些帮助,这件事把我难住了。
我的意思是
提供商-
define('test/my-provider',['angular',
'test/my-factory'
],
function myProvider(angular, MYfactory) {
var metadata = {
componentName: 'myProvider',
moduleName: 'test.myProvider'
};
var $moduleObjectProvider;
$moduleObjectProvider.$inject = [];
$moduleObjectProvider = function() {
var trackConstructor = {};
this.moduleConstructor = function(name, cb) {
//constructor
};
var $get;
this.$get = $get;
$get.$inject = ['URLfactory', '$log', '$location'];
$get = function(URLfactory, $log, $location) {
return {
function1: function(var1) {
},
function2: function(var1, var2) {
},
function3: function() {
}
};
};
};
//metadata.componentName ?
angular.module(metadata.moduleName, []).provider(metadata.componentName, $moduleObjectProvider);
return metadata;
}
);
我遇到的问题是注射器-
TypeError: Cannot set property '$inject' of undefined
它指向包含的线
$moduleObjectProvider.$inject = [];
值得一提的是,我更改了顶部位的格式(JSlinter对我大喊大叫)。当它在将其转换为requirejs格式之前工作时,最上面的部分看起来是这样的:
$moduleObjectProvider.$inject = [];
function $moduleObjectProvider() {
看起来一切都很好,注射器出现了问题(我认为)。我在这里遇到了麻烦——如果有人能了解一下情况,那就太好了。谢谢
因为您的do var myFunction = function(){}
,所以您的函数没有被"提升"到顶部。因此,在设置$inject数组时,它是未定义的。将其更改为function myFunction(){}
,您应该会没事的。
相关文章:
- 以可优化的方式使用requirejs加载模板
- RequireJS向模块传递配置总是返回undefined
- PhoneGap/带有RequireJS's的文本插件
- 如何正确地将参数传递给RequireJS回调函数
- 在requirejs中共享实例化对象
- What does requirejs.config() do?
- 将javascript应用程序迁移到使用AMD的提示(例如requirejs)
- angular.注射器阵列值未返回当前值
- 为什么谷歌地图API's方法未从RequireJS中正确调用
- 创建一个可重用的RequireJs库
- angularjs、因果报应和requirejs测试用例错误
- 在RequireJS define函数中如何处理参数
- 如何为requirejs和qunit设置grunt任务
- 将broccoliJS与当前使用requireJS的模块化主干应用程序结合使用,我想完全放弃requireJS
- 使用requireJS的jqGrid-网格加载但不起作用
- requirejs定义:嵌套依赖关系
- Backbone+RequireJS+Mediator模式导致视图逻辑短路和无限循环
- 何时使用Requirejs以及何时使用捆绑的javascript
- 'define' 在 RequireJS 和 Webapp Yo 生成器上未定义错误
- Angular和requirejs,提供注射器