我对延迟加载服务和工厂有疑问。我已经研究了一个多星期了,并没有找到满意的答案。我发现:Lazy loading AngularJS modules with RequireJS似乎接近了,但它不是我想要的,我不想懒惰加载我的模块。
我不知道如何使用AngularJS和RequireJS来装备一个用来澄清我的需求;所以我会尽可能清楚地解释我的需求:
此时,我的每个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(请原谅我)做正确的事情。
理论上,当且仅当所有承诺的参数都被解析时,我的控制器的构造函数才会被执行。我想创建一个服务解析器,它返回something
和something else
的服务承诺,以便我可以跳过RequireJS define
调用中的依赖关系并处理我的服务解析器内部或我的DI容器内部更好。
我的问题是,有没有人有这种模式的解决方案?有谁知道改变服务和工厂加载承诺的方式?或者我应该按照我一直在做的方式实现它并等待AngularJS 2.0和子注射器?
我希望这个问题有道理。感谢您的时间和帮助,
答案 0 :(得分:2)
目前无法更改实施。 AngularJS没有固定的方法来更改ServiceProvider以返回自定义promisses而不是具体对象。
Vojta Jina在this Youtube video中解释了AngularJS的未来。