AngularJS 模块注入

AngularJS Module Injection

本文关键字:注入 模块 AngularJS      更新时间:2023-09-26

我正在使用Angular和RequireJS结合使用。 我已经定义了非常简洁的控制器,用于封装特定于这些模块的逻辑。 我遇到的一个缺点是我必须将所有角度模块包含在最顶层,将单独的模块耦合到主层。

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

有没有办法在以后该模块需要时注入ui.bootstrap? 例如,主页只是登录,然后页面内部需要角度,等等:

//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) {
     }];
});

鉴于上面的例子,我能够添加:

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

繁荣!