Iva*_*lar 11 angular2-routing angular
鉴于以下路线:
path: '',
component: MyComponent,
resolve: {
foo: FooResolver,
bar: BarResolver
}
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉angular执行第一个解析器FooResolver,只有BarResolver在第一个解析器完成后才执行第二个解析器?
Est*_*ask 20
解析器并行解析.如果Foo并且Bar应该按顺序解决它们应该是单个FooBar解析器.如果它们应该在其他路径中自己使用,FooBar可以换行Foo和Bar解析:
class FooBarResolver implements Resolve<{ foo: any, bar: any }> {
constructor(
protected fooResolver: FooResolver,
protected barResolver: BarResolver
) {}
async resolve(route): Promise<{ foo: any, bar: any }> {
const foo = await this.fooResolver.resolve(route);
const bar = await this.barResolver.resolve(route);
return { foo, bar };
}
}
Run Code Online (Sandbox Code Playgroud)
FooBar应该知道这是一个事实,如果它是一个承诺或一个可观察的回报,Foo并Bar为了妥善解决它们.否则应添加额外的安全装置,如await Observable.from(this.fooResolver.resolve(route)).toPromise().
FooBar和/ Foo或Bar不应出现在同一路线内,因为这会导致重复的分辨率.
| 归档时间: |
|
| 查看次数: |
3884 次 |
| 最近记录: |