2013-11-14 175 views
0

我將Angular與RequireJS結合使用。我已經定義了非常簡潔的控制器,它們封裝了特定於這些模塊的邏輯。我有一個缺點,就是必須在最頂層包含所有角模塊,將單獨的模塊耦合到主層。AngularJS模塊注入

// app.js 
define(['angular', 'angularui'], function (angular) { 
    return angular.module('phx', ['ui.bootstrap']) 
}); 

有沒有辦法當模塊需要它,我可以在以後注入ui.bootstrap?例子是,主頁面只需登錄,然後內頁需要angularui等等這些:

//dashboard.js 
define(['app', 'angularui', function (app) { 

    // inject ui.bootstrap here? so not to couple to main module 
    return app.controller('ctrl', 
      ['$scope', function ctrl($scope) { 
    }]; 
}); 
+0

我正在努力解決類似的問題。我沒有完全滿足我的答案,但你可以看看我的一些努力[這裏](https://github.com/nikospara/angular-require-lazy)和一個不同的方法(不是我)[[這裏](https://github.com/marcoslin/angularAMD)。 –

回答

0

鑑於上面的例子,我可以加一句:

// app.js 
define(['angular'], function (angular) { 
    return angular.module('phx', []) 
}); 

//dashboard.js 
define(['app', 'angularui'], function (app) { 
    app.requires.push('angularui'); 
}); 

BOOM!