角度(6)更改次级子路线而不更改父级主要出口

时间:2019-01-27 15:31:54

标签: angular router-outlet

在我的应用程序中,我正在一个名为“模态”的出口中打开一个延迟加载的子视图的子视图。路由器的定义如下:

主要应用程序组件解析程序(此处:应用程序是祖父路线):

const routes: Routes = [
  {
    path: '',
    component: AppRootComponent,
    resolve: { generalData: AppRootDataResolver },
    children: [
      {
        path: 'backups',
        loadChildren: './routed-components/views/backup-monitor/backup-monitor.module#BackupMonitorModule',
      },
    ]
  }
];

备份组件路由器(此处:backups(此路由)是父路由,报告是在名为“路由器出口”的“模式”中显示的子路由):

const routes: Routes = [
  { path: '',
    component: BackupMonitorListViewComponent,
    resolve: { backupMonitorListViewData: BackupMonitorListViewResolver },
    canActivate: [BackupMonitorListViewCanActivateGuard],
    canDeactivate: [BackupMonitorListViewCanDeactivateGuardToken],
    runGuardsAndResolvers: 'always'
  },
  { path: 'reports',
    outlet: 'modal',
    component: ReportsListViewComponent,
    resolve: {data: ReportsListViewResolver},
    canActivate: [ReportsListViewCanActivateGuard],
    canDeactivate: [ReportsListViewCanDeactivateGuardToken],
    runGuardsAndResolvers: 'always',
  }

];

我使用路由器链接将父路由与子路由链接起来:

<button [routerLink]="['/backups', {outlets: {modal:['reports']}}]">Son</button>

而且,这似乎是在“模式”出口中打开子视图的唯一正确方法。问题是,按照定义,问题是无法仅更改名为“出口”的“模式”,而无需重新加载主模式及其解析的数据...

我也尝试过将“报告”子项放在主App路径下,但是我没有以这种方式打开子路由器出口。

有什么线索可以在不给父亲装东西的情况下从父亲重新路由到孩子的插座,或者以其他方式重新构造整个东西吗?

0 个答案:

没有答案