将一个解析结果传递给另一个角路由器
问题描述:
我知道如何为一个路由创建多个解析类,但我不知道如何将一个解析的结果传递给另一个解析。将一个解析结果传递给另一个角路由器
// Example Route
{
path: 'book/:id',
component: BookComponent,
resolve: {
document: BookResolve,
title: BookTitleResolve
}
}
如果BookResolve返回一本书的对象,你怎么能传递本书对象为BookTitleResolve?
我有一个标题服务,查找数据中的密钥标题。我需要能够从书籍对象中生成书名。这需要是动态的。
答
在同一组件中解决并发运行,但在父项中解决将在子项之前完成,因此实现此目的最简单的方法是创建一条父路由以解决该书。
{
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
}
}
你试过从第二解析器访问的第一个解析值以同样的方式组件相同,即从'this.route。 data'? – AngularChef