【发布时间】:2020-05-11 21:25:55
【问题描述】:
给定以下路线:
path: '',
component: MyComponent,
resolve: {
foo: FooResolver,
bar: BarResolver
}
有没有办法告诉 Angular 执行第一个解析器 FooResolver,并且只有在第一个解析器完成后才执行第二个解析器 BarResolver?
【问题讨论】:
-
无论你想做什么。有更好的方法。
-
这取决于
foo和bar是什么以及为什么要按此顺序解决它们。但通常这可以通过 FooBarResolver 来实现,它解析为包含 foo 和 bar 的对象。 -
@estus 我正在考虑这样做,如果没有其他方法我会这样做,但我更愿意使用不同的解析器来实现重用。
-
@estus 基本上
foo和bar是从数据库中检索的json 对象,我不关心执行顺序,但它们必须一个接一个地执行。 -
我有同样的问题,但更复杂。在我的情况下,
bar和baz依赖于foo但baz在某些路由中是可选的。最终我得到了FooBarBaz解析器,它负责处理可选的 Baz。据我所知,目前没有更好的方法。