2013-11-14 130 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!