2

Angular2アプリ(最終的な1.xリリースを使用)では、いくつかのタブを持つページがあります。親状態/samples/{id}には、各タブの子ルートがあります。例えば。 /samples/{id}/locationまたは/samples/{id}/executionAngular2ルータ:親ルートから子ルートまでの値を共有する方法は?

サンプルデータは、サーバーAPIによって1回の要求で送信される1つの大きなオブジェクトで、すべてのタブのデータが含まれています。だから私は一度だけ、親ルートが(コンポーネントコード内または多分解決で)起動され、それからすべての私のタブで読み込まれます。

オブジェクトを親コンポーネントから子ルートのコンポーネントに直接共有する方法はありますか?スコープのような並べ替えはAngular 1で継承されましたか?

サービスを使用してオブジェクトを共有できることはわかっていますが、組み込みのソリューションがあるのか​​不思議です。

親ルートからルートパラメータを取得することは可能ですが、その場合はあまり役に立ちません。

答えて

3

「組み込みソリューション」は、実際には共有サービスを使用しています。

@Input()デコレータを使用するオプションもありますが、私の言う限りではルートを使用しているため、あなたのケースでは適用できません。これは、子が親コンポーネント内にある親子関係でのみ適用されます。

別のオプションは、ルートをアクティブにする前にデータを解決するRoute Data Resolverを使用していますが、データが既にロードされているため、共有サービスオプションがあなたのケースにとって最適なソリューションです。

+1

ありがとうございます!最後に、データを一度ロードするために親ルートのリゾルバを使用しました。データはサービス内のシンプルなキャッシュに保持されます。私はそれから、すでにロードされたデータを各子ルートコンポーネントで同期してアクセスすることができます。 –

関連する問題