Angularはangular.bootstrapの後にモジュールを追加します 質問する

Angularはangular.bootstrapの後にモジュールを追加します 質問する

私は Meteor + Angular を使用しています。私の意図は、アプリのブートストラップ後にさらに依存関係を追加することです (これは、パッケージが最初にブートストラップを処理するものであり、それをあまり制御できないためです)。それを実行する際には、たとえば、すべてのコントローラーを 1 つのモジュールにコンパイルするなど、基本的なコード構造を適用したいと考えています。

基本的な考え方は次のとおりです。

'use strict';

angular.module('app.controllers', [])

    .controller('MainCtrl', function() {
        // ...
    })

    .controller('SubCtrl', function() {
        // ...
    })

    .controller('AnotherCtrl', function() {
        // ...
    });

次に、それを依存関係としてメイン モジュールに含めます。

angular.module('app', [
    'app.filters',
    'app.services',
    'app.directives',
    'app.controllers' // Here
]);

少し調べた結果、私がやろうとしていること (ブートストラップ後の依存関係の追加) は、実際には Angular チームへの機能リクエストの一部であることがわかりました。そのため、私のオプションは、たとえば、関数を使用すること$controllerProviderですregister()

Meteor.config(function($controllerProvider) {
    $controllerProvider.register('MainCtrl', function($scope) {
        // ...
    });
});

Meteor.config(function($controllerProvider) {
    $controllerProvider.register('SubCtrl', function($scope) {
        // ...
    });
});

Meteor.config(function($controllerProvider) {
    $controllerProvider.register('AnotherCtrl', function($scope) {
        // ...
    });
});

それほどエレガントではありませんが、動作します。質問は次のとおりです。

  • configand部分をよりエレガントに行う方法は何でしょうかregister?
  • 代わりにモジュールを登録する方法はありますか?

ベストアンサー1

モジュールを作成します。

angular.module('app.controllers', []);

依存関係として追加します:

angular.module('app').requires.push('app.controllers');

おすすめ記事