问题描述
在解析器中:
- 获取数据
- 根据这些数据构建路由器
然后,我的路由器看起来如下:
{
path: '',component: WrapperComponent,resolve: {
traveler: TravelerResolver,// <-- the resolver adds children
},children: [{
path: 'a',component: AComponent,children: [{
path: 'sub-a',component: SubAComponent,},{
path: 'sub-b',component: SubBComponent,}],{
path: 'b',children: [{
path: 'sub-a-prime',component: SubAprimeComponent,{
path: 'sub-b-prime',component: SubBprimeComponent,}
例如,我能够导航到/a/sub-a
。
正在发生的是在重新加载时,不再次调用解析器以生成路由。
是否可以再次调用它?或者我的情况是否有更好的模式?
编辑。
我犯了个重击:
https://stackblitz.com/edit/angular-ivy-4yen6w?
解决方法
可以通过在根路由上设置runGuardsAndResolvers
属性来实现。 Here是有关其工作原理的简短说明。
我为您创建了一个StackBlitz,向您展示了它的运行情况。代码的主要部分如下:
const routes: Route[] = [
{
path: "",component: HelloComponent,resolve: {
traveler: TravelerResolver // <-- the resolver adds children
},// by specifying 'always',guards and resolvers will run any time the url changes
runGuardsAndResolvers: 'always',children: [
{
path: "resolverTest",component: HelloComponent
}
]
}
];