angularjs - 使い方 - モジュール全体の変数を初期化する場所をは?



angularjs config 使い方 (2)

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

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

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

不明なエラー:不明なプロバイダ:MyModuleからの$ rootScope

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

https://src-bin.com


Answer #1

configブロックにサービス(ここでは$ rootScope)を注入することはできません。 設定段階で注入できるのは定数とプロバイダだけです。

あなたの場合、正しい解決策は実行ブロックを使うことでしょう。 実行するように設定を変更するだけで、期待通りに動作するはずです。


Answer #2

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

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

定数は変更できませんが、値は変更できます。 そして、あなたはそれを必要とするところならどこでもそれを注入することができます:

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

私の考えでは。 これは、 $rootScopeを使用するよりも、サイト全体の変数にとってより「適切」なよう$rootScope





angularjs