2016-10-24 14 views
0

私のアプリケーションはコンポーネントとブーストラッパーを使用します。グローバル日付変数を設定するdatepickerを作成したいと思います。私はサービスを作成しようとしましたが、rootscopeを使用し、基本的に私がstackoverflowで見つけることができるすべてのソリューションを使用しますが、動作していないようです。グローバル変数をTypescriptで定義するコンポーネント内のAngularjs

すべてのコンポーネントで共有されるグローバル変数を作成する正しい方法は何でしょうか?

答えて

0

グローバル変数を使用して、このような状態を格納するのは一般的には良いことではありません。なぜなら、何が突然変異しているのかを追跡するのは難しいからです。

Angular 1.xとすると、このような情報を共有するために、トラッキングしているデータを保存するサービスを作成するだけです。ここで免責条項を追加して、ウェブアプリケーションの状態管理はまだ難しい問題です。あなたはReduxスタイルのアプローチのために行くことができますが、私は今それを基本的に保ちます。

angular 
    .module('app', []) 
    .controller('testController', function(testService) { 
    console.log(testService.getDate()); 
    }); 


angular.module('app') 
    .service('testService', function() { 
    var date = new Date(); 

    function getDate() { 
     return date; 
    } 

    function setDate(newDate) { 
     date = newDate; 
    } 
}); 

このようにして、日付を読み取り/変更するインターフェイスがあります。あなたは好きなだけ多くのコントローラー/コンポーネントに注入することができます。

私は答えがTypescriptではないことを認識していますが、問題には基本的な解決策があるので、私は仮定します。それはあまり重要ではありません。Typescriptの回答が必要な場合は、私はあなたのためにそれを変更します:))。

関連する問題