angular-每次重新加载页面时是否都可以调用父解析器?

问题描述

在解析器中:

  • 获取数据
  • 根据这些数据构建路由器

然后,我的路由器看起来如下:

{
  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
      }
    ]
  }
];