将一个解析结果传递给另一个角路由器

问题描述:

我知道如何为一个路由创建多个解析类,但我不知道如何将一个解析的结果传递给另一个解析。将一个解析结果传递给另一个角路由器

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

如果BookResolve返回一本书的对象,你怎么能传递本书对象为BookTitleResolve

我有一个标题服务,查找数据中的密钥标题。我需要能够从书籍对象中生成书名。这需要是动态的。

+0

你试过从第二解析器访问的第一个解析值以同样的方式组件相同,即从'this.route。 data'? – AngularChef

在同一组件中解决并发运行,但在父项中解决将在子项之前完成,因此实现此目的最简单的方法是创建一条父路由以解决该书。

{ 
    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 
    } 
}