私はSOで同様の質問を検索しましたが、私の特定のケースに対処するものは見つかりませんでした。 https://angular.io/docs/ts/latest/cookbook/component-communication.html角2:異なるルート間でデータを共有する
しかし、私のコンポーネントが異なるルートにあるため、そこに記載されている技術はどれも私のためには機能しません。この記事では、主に親子コンポーネントの通信について説明しています。両方のコンポーネントが同時に読み込まれる限り、兄弟コンポーネントで動作するケースもあります。
私のケースは、Angular 2 Heroesチュートリアルと非常によく似ています。私は、ヒーローではなく顧客のリストを含むテーブルを表示するルートを持っています。ユーザーが特定の顧客をクリックすると、経路変更が発生し、選択された顧客のデータ(主人公ではなく)のフォームが表示されます。
ヒーローチュートリアルでは、選択したヒーローデータを取得するためにサービス呼び出しを実行しますが、それらのデータがすでにメモリにある場合は、無駄な追加のAJAX呼び出しを避けたいと考えています。選択した顧客データを顧客フォームコンポーネントに渡してすぐに表示するだけです。
私が望むオブジェクトを格納して取り出すことができる「グローバルセッション」サービスを考えていますが、これは良い考えではありません。他のより適切なアプローチがありますか?
メインアプリケーションファイルで提供し、あなたがmain.app.ts
@Component({
...
providers:[yourDataService]
...
})
他のコンポーネント全体のアプリで利用できるようになります/設定データを取得したいときはいつでも、それを注入され
これが私の「グローバルセッション」サービスに似ています。 "yourDataService"のAPIはどのように見えますか? setCustomer()/ getCustomer()のようなもの? –
@Luisクレスポはそうまさに、これは私が – neuronet
ありがとう考える最も簡単かつ最善のアプローチです。これは私が考えていたものなので、もう少しお互いのアプローチがあるかどうかを見てみましょう。 このような一般的なシナリオでは、アプリケーションレベルでこの種のサービスを開発しなければならないのは奇妙なことです。たぶん角度2は、すでに簡単なメカニズムを提供しています。観測編集について –