1

他の 2 つのモジュール「app.core」と「app.service」を含むグローバル モジュール「app」があります。これが基本設定です。2 つのサブモジュール内で、2 つのモジュールの両方から定数にアクセスできます。ただし、「app.core」または「app.service」内の「app」で宣言された定数にアクセスできません。

また、サーバーから構成を取得する必要があるため、初期化を遅らせるために angular.bootstrap を使用します。しかし、構成を受け取った後、angular.module('app').constant('config', config); を実行します。したがって、定数は適切に定義する必要があります..

最後に、「app」モジュール構成内で、構成定数にアクセスできます。

何か案が ?

'app' モジュール定数宣言

angular.module('app',[
    'app.core',
    'app.service'
])
    .module('app')
    .constant('foo', 'foo')

「app.core」定数

    angular
    .module('app.core')
    .constant('core', 'core');

「app.service」でコア定数を取得できます

    angular.module('app.services',[]).config(function($injector){
        console.log($injector.get('core'));
    })

しかし、「アプリ」定数を取得できません

angular.module('app.services',[]).config(function($injector){
        console.log($injector.get('foo'));
    })

クラッシュします

4

1 に答える 1

3

どちらの構成でも、別のモジュール内で定義された定数にアクセスしようとしていますが、そのモジュールを依存関係として定義していません。たとえば、最初に必要なモジュールで が定義されているときに、どのようにapp.servicesアクセスできますか?foofoo app.services

これにもかかわらずcoreが利用できる理由は、Angular がたまたま. ただし、定義された依存関係の順序は重要ではありません。app.servicesappapp.coreapp.services

これを修正するには、固有の循環依存関係がないようにモジュールをリファクタリングすることを検討する必要があります。たとえば、構成自体をモジュールにして、依存サービスに注入することを検討してください。

angular.module('app', ['app.core', 'app.services'])

angular.module('app.config', [])
  .constant('foo', 'foo')

angular.module('app.core', ['app.config'])
  .config(function(foo) {})

angular.module('app.services', ['app.config'])
  .config(function(foo) {})

また、インジェクターを使用して定数を取得する必要はありません。構成段階で直接注入できるためです。

于 2015-02-02T21:11:53.783 に答える