我試圖建立面包屑以顯示在我的「殼」組件(一個與<router-outlet>
)。我正在注入Angular的Router
服務,並通過將其從routerState.root
向下遍歷其firstChild
(或children[0]
)屬性遍歷到空,從而構建包含當前顯示的路由的(鏈接的)列表組件。結果是一個ActivatedRoute
對象的鏈表。當我將定製數據附加到每個定義的路線(例如標題)時,我可以在運行時獲得(通過ActivatedRoute.data
成員),因此我可以在麪包屑中顯示項目的名稱。如何將ActivatedRoute序列化爲Angular 2中的字符串?
但問題是與鏈接(網址)。 ActivatedRoute
擁有關於鏈中特定路由的所有信息,但是我無法找到將其序列化爲單個字符串值的方式,以用作麪包屑中的鏈接。當然,我可以手動解析它,但對於如此重要的事情來說,這太費事了。 ActivatedRoute
有urls(本身分裂),查詢參數,矩陣參數等所有在不同的屬性(其中一些甚至Observables,使不必要的複雜的東西)...但沒有單個字符串屬性,給出完整的URL(帶參數和一切)。
順便提一句,Router
服務有serializeUrl()
成員,它帶有UrlTree
類型的參數,並將其轉換爲字符串。也許有一些轉換成ActivatedRoute
UrlTree
,這樣我就可以再使用Router.serializeUrl()
方法..
簡單:我怎樣才能得到初始化字符串出ActivatedRoute
(或ActivatedRouteSnapshot
)對象的? (顯然,我自己寫的並不是完整的解析邏輯)。
看來如此重要的事情需要,因爲ActivatedRoute基本上解析字符串URL的表示(如果我正確理解這整個概念)...和Router
甚至有輔助方法來字符串化UrlTree
對象(這是從來沒有解釋如何檢索首先)...