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

每當我根據需要更新搜索內容時,需要刷新路由器插座組件數據的數據。Angular2 +:刷新外部路由器插座組件的路由器插座組件數據

雖然第一次路由我使用共享服務共享數據,但它不會工作,因爲在init調用一次。對於相同路由的下一個數據,它將不起作用。

我需要在不斷的搜索組件到改變的路由器(router-outlet)組件之間共享數據。有時需要渲染兩個不同的數據。

+0

嗨,歡迎來到Stack Overflow,請閱讀如何創建[最小,完整和可驗證示例](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

路線僅破壞並重新創建組件時,導航到不同的路線。當只更新路由參數或查詢參數但路由相同時,組件不會被銷燬和重新創建。

相關問題