[英]Angular2 router: How to share a value from parent to child routes?
在Angular2應用程序中(使用最終的1.x版本),我有一個包含多個選項卡的頁面。 父狀態/samples/{id}
具有每個選項卡的子路由。 例如/samples/{id}/location
或/samples/{id}/execution
。
示例數據是服務器API在一個請求中發送的一個大對象,包含所有選項卡的數據。 所以我想只加載一次,當父路由被激活時(在組件代碼中或者可能在解析中),然后在我的所有選項卡中讀取它。
有沒有辦法直接將父組件中的對象共享到子路徑的組件? 有點類似於Angular 1中繼承的范圍?
我知道我可以使用服務來共享對象,我只是好奇是否有內置的解決方案。
我也知道可以從父路線獲取路線參數,但在這種情況下它不會非常有用。
“內置解決方案”實際上是使用共享服務。
還有使用@Input()
裝飾器的選項,但在你的情況下它不適用,因為你可以使用路由。 這僅適用於父子關系,其中子在父組件內。
另一種選擇是使用Route Data Resolver
在激活路由之前解析數據,但由於數據已經加載,因此共享服務選項是您案例的最佳解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.