2017-06-06 8 views
0

アプリケーションでグローバル変数を一定にするためにパターンを探しています。しかし、コントローラや工場ではありません。 (そうでないとapp.constant()も)AngularJS(グッドプラクティス)のグローバル変数

変数を設定したいだけですが、何か良いものが見つかりませんでした。

私はこのrootをrootScoopに設定したかったが、成功しなかった。

myApp.run(function($rootScoop){ 
$rootScoop.global = {}; 
}); 

私はそのコードを使用すると、arrorは何も(transtateFilterProvider)のために発生するようなもので 。このコードを削除すると、translateServiceは動作します。

私はすべてのHTMLビューでアクセスする必要があります。私はいつもコントローラ(この場合は役に立たない)を使用したくないので、rootScoopにグローバル変数を設定したいだけです。

ありがとうございます。ですので

+2

なぜ工場/サービスを使用したくないのですか?それはそれを行う角度のように思えます。本当にそれを使用したくない場合は、純粋なJS(角がない)を使ってグローバルオブジェクト( 'window')に変数を書くことができます: ' window.constants = {} ' – PzYon

+0

HTMLでアクセスしたいビューは、windows.constantsで可能ですか? – Shining

+0

正直ではありません。 'window.constants'か' window ["constants"] 'を使って試してみてください。それがうまくいかない場合は、テンプレートのコントローラー(スコープ)にそれを公開することができます。 – PzYon

答えて

1

は、あなたがエラーを取得しています

$rootScope 

そしてない

$rootScoop 

とにかく、これを行うための正しい方法は次のようにアプリに一定のモジュールを追加することです:

angular.module('yourapp', []).constant('Constants', { 
    foo: 'bar' 
}); 

しかし、コントローラで定数を呼び出す必要があります。

$ rootScopeを使用する場合は、テンプレートで$ root.globalを呼び出す必要があります。

関連する問題