2017-06-30 21 views
-1

私はAngular 2ベースのアプリケーションを構築しています。私はアクセス可能で、すべてのコンポーネントによって変更できるグローバル変数が必要です。 私が見つけることができるすべての現在の答えは定数です。誰も私がそうする方法を提案することはできますか? ありがとう!角度2のグローバル変数

+1

@Injectable() export class AppService{ myGlobalVar; constructor(){ this.myGlobalVar = true; console.log("My global variable value: " + this.myGlobalVar); alert("My intial global variable value is: " + this.myGlobalVar); } setMyGV(val: boolean){ console.log("Setting FV to: " + val); this.myGlobalVar = val; } getMyGV(val: boolean){ return this.myGlobalVar; } } 

がコンポーネントから変数へのアクセスと変更行く方法:https://angular.io/guide/component-interaction – Alex

+0

[この質問](https://stackoverflow.com/questions/11938380/glo bal-variables-in-angularjs)あなたの質問に答えますか? – JiFus

+0

まず、グローバル変数を持つことをお勧めしますか? – helcim

答えて

0

グローバル変数を扱う必要があるときは、通常、共有サービスを介して行います。私は、ルートコンポーネントのサービスの変数を宣言します。通常はapp.service.tsであり、セッターとゲッター関数を介して他のコンポーネントに利用可能にします。

デモンストレーションのために、私は3つのコンポーネントを持つヒーローズチュートリアルプランナーを使用しました。 app.service.tsには、変数myGlobalVarが宣言されています。

他のすべてのコンポーネントにボタンを追加してmyGlobalVarの値を変更し、いつでもその値を参照しました。

あなたはこのexample

app.service.tsから相互作用の詳細を見つけることができます:私は、共有サービスをと考えている

export class exampleComponent{ 
    constructor(private appService: AppService) {} 

    changeGV(val){ 
     this.appService.setMyGV(val); 
    } 

    showGV(){ 
     alert("GV: " + this.appService.getMyGV()); 
    } 
}