14

私はこのようなことをしようとしています:

angular.module('MyModule', ['ui'])
    .config(function($rootScope) {
        $rootScope.Gender = {
            'M': 'Male',
            'F': 'Female',
            'U': 'Unknown',
        };
    })

しかし、私はこのエラーが発生します:

キャッチされないエラー: 不明なプロバイダー: MyModule からの $rootScope

$rootScopeモジュール構成内にアクセスできない場合、モジュール全体の変数を初期化する適切な場所はどこですか?

4

2 に答える 2

25

を使用する代わりに$rootScope、角度定数または値を使用することもできます。

angular.module('MyModule', ['ui']).constant( 'Gender', {
  'M': 'Male',
  'F': 'Female',
  'U': 'Unknown',
});

定数は変更できませんが、値は変更できます。そして、必要な場所に注入できます。

app.controller( 'MainController', function ( $scope, Gender ) {
  console.log( Gender.M );
});

私の意見では。これは、を使用するよりも、サイト全体の変数に対してより「適切」に思えます$rootScope

于 2013-01-27T22:41:51.890 に答える
8

サービス(ここでは$ rootScope)を構成ブロックに挿入することはできません。構成フェーズでは、定数とプロバイダーのみを挿入できます。

あなたの場合、正しい解決策は実行ブロックを使用することです。configを変更して実行するだけで、期待どおりに機能するはずです。

于 2013-01-27T22:25:18.467 に答える