2017-07-17 9 views
0
<div><SearchProjects></SearchProjects></div> 
<div> 
    <router-outlet></router-outlet> 
</div> 

ルータのコンセントコンポーネントのデータを更新する必要がある場合、検索コンテンツを変更するたびに変更します。Angular2 +:ルータのアウトレットコンポーネントのデータをルータのアウトレットコンポーネントからリフレッシュする

最初のルーティングでは、共有サービスを使用してデータを共有していますが、initコールでは1回だけ動作するため動作しません。同じルーティングの次のデータについては、動作しません。

定数検索コンポーネントと変更ルータ(ルータ/アウトレット)コンポーネントとの間でデータを共有する必要があります。同じルーティングの場合、2つの異なるデータをレンダリングする必要があります。

+0

こんにちは、[最小、完全、かつ検証可能な例](https://stackoverflow.com/help/mcve)を作成する方法と[良い質問をする方法](https ://stackoverflow.com/help/how-to-ask)ので、フィードバックや役に立つ回答を得る機会が増えます。 – DarkCygnus

答えて

0

あなたのサービス内の共有データを、観測可能なようにサブスクライブ可能なサブジェクトにします。 subject.next(value)を使用すると、すべてのオブザーバが更新されます。共有サービスを利用するコンポーネントのonInit機能でサブジェクトにサブスクライブします。

+0

どのような例でも共有できますか? – user8320023

+0

[私はここで提供されているものよりも完璧な例を考えることはできないと思う](http://jasonwatmore.com/post/2016/12/01/angular-2-communicating-between-components-with -observable-subject) – ebraley

+0

助けてくれてありがとう。私のシナリオで試してみましょう。それは私のために働くかもしれません。 – user8320023

0

のみapp.modules.tsで使用サービスプロバイダ

0
constructor(route:ActivatedRoute){ 
     route.params.subscribe(val=>{ 
     // add to do function() 
     }) 
    } 

「はActivatedRoute」を注入し

ルートのみが異なる経路に移動成分を破壊し、再作成のparamsをサブスクライブする必要があります。ルートパラメータまたはクエリパラメータのみが更新されてもルートは同じである場合、コンポーネントは破棄されずに再作成されません。

関連する問題