Angular 如何使用将数据从一个解析器传递到另一个解析器

Angular 如何使用将数据从一个解析器传递到另一个解析器,angular,angular-routing,resolver,Angular,Angular Routing,Resolver,我有两个角分解器一个接一个地工作。第一 @Injectable() export class ChainViewResolver implements Resolve<any> { constructor(private a: AService) { } resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> { re

我有两个角分解器一个接一个地工作。第一

@Injectable()
export class ChainViewResolver implements Resolve<any> {

    constructor(private a: AService) {
    }

    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
        return this.a.getSome(route.params['id']);
    }
}
@Injectable()
导出类ChainViewResolver实现解析{
构造函数(专用a:AService){
}
解析(路由:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
返回这个.a.getSome(route.params['id']);
}
}
第二,

@Injectable()
export class DocViewResolver implements Resolve<any> {

    constructor(private a: AService) {
    }

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {

    return this.a.getSome(state.url.split('/')[state.url.split('/').indexOf('id') + 1]).flatMap((chain) => {
        return this.a.getSomeAnotherData(route.params['id2']).flatMap(result => {

        });
    });
}
}
@Injectable()
导出类DocViewResolver实现解析{
构造函数(专用a:AService){
}
解析(路由:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
返回此.a.getSome(state.url.split('/')[state.url.split('/')).indexOf('id')+1]).flatMap((chain)=>{
返回此.a.getSomeAnotherData(route.params['id2']).flatMap(结果=>{
});
});
}
}
url看起来像:

/父组件/:id/子组件/:id

其中,第一个解析器用于父\u组件,第二个解析器用于子\u组件

1) 方法getSome这是一个繁重的请求,当我的解析器一起工作时,我不想使用它两次

2) 我不想将其写入某个变量或本地存储,因为返回的数据经常更改,并且当我使用第一个解析器而不是第二个解析器时,可能会因此出现问题


如何将数据从第一个冲突解决程序传递到第二个冲突解决程序?

因此,我使用名为TmpService的服务将数据从一个冲突解决程序传递到另一个冲突解决程序,这是可行的,但我不喜欢这个决定。

如果您对第一个父路由有如下声明:

resolve: {
    parentValue: ChainViewResolver
}
您可以在子DocViewResolver中获得它,如:

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {

    let parentValue = route.parent.data.parentValue; // <-- here

    return ...
}
解析(路由:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{ 让parentValue=route.parent.data.parentValue//