2015-06-18 43 views
0

我有一個應用程序,它決定它是否需要應用程序運行塊中的一組特定模塊。 (刪除所有不必要的邏輯)如何在AngularJS中將模塊和服務動態注入到應用程序和控制器中?

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 
}); 

我知道這可能只是添加的所有模塊,嵌入式陣列註釋,然後只檢查是否存在爲myService,我的控制器內。但我試圖以正確的方式做到這一點,而不是檢查我的服務,想出了我的整個代碼庫。

我感謝任何幫助!

+1

檢查這個答案:http://stackoverflow.com/questions/14415845/angularjs-dynamically-inject-scope-or-controller – Matho

+0

謝謝你的鏈接Mathos。看起來像服務可以動態注入沒有太多的工作。我想知道是否有類似的注入模塊解決方案! –

回答

0

確定需要什麼之後,您可以明確引導應用程序模塊。

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

感謝您的答案,神祕海域。我正在尋找一種方式在應用程序開始運行後添加模塊,理想情況下應用程序的運行模塊內部。 –

+0

你可以將我放入「config」模塊的某些東西進行包裝,然後在那個模塊中運行。你可以擴展你的最終目標是什麼,或者你爲什麼試圖這樣做? –

相關問題