2017-01-10 4 views
0

私は簡単なログインコントローラーthatsがアプリケーションログインプロセスを処理しています。私はそのように一定に渡し、私のログインコントローラでAngular.jsログインコントローラーで定数を設定するには

.constant('MyConstant', [{ 
    id: null, 
    user: null 
}]) 

.controller('loginController', [ 
    '$scope', 
    'MyConstant', 
    function ($scope, MyConstant) { 
     //here i want to change the constants data like this: 
     MyConstant.user = 'My new username' 
    } 
]) 

しかし、私はここに定数を呼び出すときに、私は未定義の取得モジュールレベルで、私はこのような定数を作成していますか? これを適切に処理するにはどうすればよいですか?それとも全く違うやり方が良いのでしょうか?

そして私は、この新しいデータを使用できるようにする他のコントローラーを呼び出す:

.constant('MyConstant', { 
    id: null, 
    user: null 
}) 

.constant('MyConstant', [{ 
    id: null, 
    user: null 
}]) 

を、一定の追加:交換してみ

.controller('otherController', [ 
     '$scope', 
     'MyConstant', 
     function ($scope, MyConstant) { 
      //this should return 'My new username' 
      console.log(MyConstant.user); 
     } 
    ]) 

答えて

5

をコントローラ内のservice

.controller('otherController', [ 
    '$scope', 'MyConstant', 
    function ($scope, MyConstant) { 
     //this should return 'My new username' 
     console.log(MyConstant.user); 
    } 
]) 

そして共有サービスとして使用(ルートで定義)ように動作する必要があり、それは任意のコントローラ(アプリケーション全体)に

を使用することができます。

0

MyConstantotherControllerに挿入するのを忘れた。

しかし、これで問題は解決しないはずです。 定数はAPIのエンドポイントや、アプリ内で変更する必要のない値に便利です。

なぜサービス/工場を使用しませんか?

http://bguiz.github.io/js-standards/angularjs/constants/

関連する問題