2016-05-03 8 views
4

ユーザーテーブル(userTableComponnent)とuserDetailsの別のコンポーネントをホストするコンポーネントがAngular2にあります。ユーザーテーブルの行をクリックすると、userDetailsにルーティングします。 1つの実装ではuserIdのみを渡すので、userDetailsでは別のhttp getでユーザーの詳細を取得します。しかし、私はuserTableComponentのすべてのユーザー情報を取得するので、これは冗長です。だから、本当に必要なのは、UserオブジェクトをuserTableComponentからuserDetailsに渡すことです。どのようにルーティングを介してそれを達成するための任意のアイデア?ルーティングにオブジェクトを渡す

答えて

9

SessionServiceクラスを作成し、Dependency Injectionを使用してアプリケーションに渡すことができます。

ユーザーが選択されると、DI経由で注入されたSessionServiceインスタンスに相対データを添付し、userDetailsコンポーネントで取得できます。

私は役に立ちます。

+0

おかげでした。それは素晴らしいです – Hammer

+0

あなたは、ページがユーザーによって更新されたときに共有サービスがデータを失うかもしれないと思いませんか? –

+1

F5キーを使用してリフレッシュすると、ローカルストレージを使用していない限り、アプリをリロードしているためすべてが失われます。これらが単一ページアプリケーションであることを考慮してください。これは、とりわけ、ブラウザにロードされた瞬間から新鮮に始まることを意味します。 – Picci

6

ルーティングによるオブジェクトの受け渡しは非常に制限されています。サービスを使う方が良い選択です。親コンポーネントによってサービスインスタンスを提供する場合、同じインスタンスが親と子で注入され、共有データがすぐに利用可能になります。 RC.4で

も参照してくださいhttps://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service

dataルートの返信のための再導入How do I pass data in Angular 2 components while using Routing?

+0

ありがとうございます。リンクは非常に有益です – Hammer

関連する問題