【发布时间】:2014-10-28 16:10:37
【问题描述】:
我有一个关于延迟加载服务和工厂的问题。我已经研究了一个多星期了,还没有找到满意的答案。我发现:Lazy loading AngularJS modules with RequireJS 似乎很接近,但这不是我想要的,我不想延迟加载我的模块。
我不知道如何使用 AngularJS 和 RequireJS 来安装一个 plunker 来阐明我的需求;所以我会尽量清楚地解释我的需求:
此时,我的每个 AngularJS 控制器、服务和工厂看起来都像这样:
var dependencies = ['something', 'something/else'];
define(dependencies, function() {
var controller = function(something, else) {};
angular.module('app').controller('myController', ['something', 'else', controller]);
});
这行得通。我使用 RequireJS 加载我的依赖项,一切都很好。困扰我的是需要声明我的依赖项并将我的 AngularJS 代码包装在 RequireJS 定义调用中,我希望 AngularJS(在此打扰我)做正确的事情。
理论上,当且仅当所有作为 promise 的参数都被解析时,我的控制器的构造函数才会被执行。我想创建一个服务解析器,它返回 something 和 something else 的服务承诺,这样我就可以跳过 RequireJS define 调用中的依赖关系,并在我的服务解析器内部处理它,甚至在我的 DI 内部处理它容器。
我的问题是,有人有这种模式的解决方案吗?有谁知道改变服务和工厂加载承诺的方式的方法?还是我应该按照我一直在做的方式实现它并等待 AngularJS 2.0 和子注入器?
我希望这个问题有意义。感谢您的时间和帮助,
【问题讨论】:
标签: angularjs dependency-injection requirejs lazy-loading