簡體   English   中英

Angular2路由器:如何從父路由到子路由共享一個值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM