我遇到angularjs
和cordova
的特殊情况。基本上我只想在deviceready
中的cordova
被触发后才加载角度模块。我的骨架有点像下面的app.js
:
angular.module('app', [
'module1',
'module2',
'module3'
])
.run(function() {
});
我可以检查run()
中的任何就绪事件,但只有在所有modules
执行后才会发生。我不想要"微"检查每个控制器中的就绪事件。
两个问题:
有没有办法只在事件准备就绪后才加载角度模块(具体为deviceready
)?
奖励:有没有办法先加载module1
,检测某些事件准备就绪,然后加载module2
和module3
?
答案 0 :(得分:0)
对于这两个问题都是肯定的;可以在AngularJs中按需加载模块。
这是一个链接,其中包含有关如何加载模块的深入说明以及包含示例源代码的示例项目:http://blog.getelementsbyidea.com/load-a-module-on-demand-with-angularjs/
AngularJs的源代码实际上包含所有模块的列表。但是,此列表是私有的,因此无法修改。为了解决这个问题,作者仔细模仿了AngularJs代码中的模块加载,以便稍后加载模块。
我建议您仔细阅读本文,以便了解所有内容,然后根据自己的目的调整代码。