2017-02-14 87 views
7

我知道如何爲一個路由創建多個解析類,但我不知道如何將一個解析的結果傳遞給另一個解析。將一個解析結果傳遞給另一個角路由器

// Example Route 
{ 
    path: 'book/:id', 
    component: BookComponent, 
    resolve: { 
    document: BookResolve, 
    title: BookTitleResolve 
    } 
} 

如果BookResolve返回一本書的對象,你怎麼能傳遞本書對象爲BookTitleResolve

我有一個標題服務,查找數據中的密鑰標題。我需要能夠從書籍對象中生成書名。這需要是動態的。

+0

你試過從第二解析器訪問的第一個解析值以同樣的方式組件相同,即從'this.route。 data'? – AngularChef

回答

2

在同一組件中解決併發運行,但在父項中解決將在子項之前完成,因此實現此目的最簡單的方法是創建一條父路由以解決該書。

{ 
    path: 'book/:id', 
    resolve: { 
    document: BookResolve 
    }, 
    children: [ { 
    path: '', 
    component: BookComponent, 
    resolve: { 
     title: BookTitleResolve 
    } 
    } ] 
} 

注意的是,家長不渲染的成分,孩子包含空路徑,儘管增加了一些樣板,路由功能應該採取同樣。

然後你BookTitleResolve實現裏面,你可以從父路徑檢索:

class BookTitleResolve { 
    resolve(route: ActivatedRouteSnapshot) { 
     // Do something with route.parent.data.document 
    } 
} 
相關問題