如何在AngularJS中向app和controller中动态注入模块和服务?

时间:2015-06-18 20:09:38

标签: angularjs angular-services

我有一个应用程序,决定它是否需要应用程序运行块内的一组特定模块。 (删除了所有不必要的逻辑)

angular.module('myApp', []).run(function () {
    if (true) {
        //needs to have modules injected into myApp
    }
});

在我的角度应用启动后,如何将模块添加到myApp?

一旦动态注入模块,我如何在我的应用程序的其他位置使用注入模块的服务,如控制器和指令?

angular.module('myApp').controller(function ($scope, myService) {  //where myService belongs to a dynamically added module

    myService.doStuff(); //this would give me an error if the module wasn't injected
});

我知道可以只使用Inline Array Annotation添加所有模块,然后在我的控制器内部检查myService是否存在。但我正在尝试以正确的方式执行此操作,而不是检查我的服务,考虑我的整个代码库。

我感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您可以在确定需要之后显式引导应用程序模块。

var modulesToInject = ["myDep1"];
// push more modules here as needed
angular.module("myApp", modulesToInject);
angular.bootstrap(document,["myApp"]);