【发布时间】:2017-06-02 20:49:46
【问题描述】:
我有一条路线:
const routes: Routes = [
{
path: ':id',
component: MoyComponent,
resolve: {
first: MyFirstResolver
second: mySecondResolver(first)
}
}
我有一个解析器:
@Injectable()
export class MyFirstResolver implements Resolve<any> {
constructor(private ms: MyService, private router: Router) {}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
let id = route.params['id'];
return this.ms.get(id).map(res => {
if (res) {
return res;
} else {
this.router.navigate(['/']);
return null;
}
});
}
}
MyFirstResolver 返回一个对象obj,我想将obj['price'] 传递给mySecondResolver,因为mySecondResolver 取决于price 的price 属性。如何将结果从myFirstResolver 传递到mySecondResolver?
【问题讨论】:
-
你有两个
return statements -
我不明白@Aravind
-
您可能需要将它们合并到它自己的解析器中。理论上,您可以简单地创建一个 ThirdResolver 类,导入前两个类,然后将它们链接在一起。
-
@wilsonhobbs,这听起来很有趣,如果您可以发表回复,我会将其标记为完成...