动态将路由添加到延迟加载的模块Angular 8

时间:2019-10-08 05:04:57

标签: angular angular8

我有一个共享模块,其路由定义如下

export const HrRouting: Routes = [
  {
    path: '',
    component: HrComponent,
    data: {
      breadcrumb: 'HR'
    },
    children: [
      {
        path: 'settings',
        component: SalesOneProHrSettingsComponent,
        data: {
          acl: 'hr::hr',
          breadcrumb: 'Settings'
        },
      }
    ]
  }
]

我正在使用loadChildren在两个不同的模块中加载此模块。在其中一个模块中,我想向该路由添加一条路径。例如

HrRouting['children'].push({
        path: 'reports',
        component: HrReportComponent
});

我该如何实现?

2 个答案:

答案 0 :(得分:0)

您可以使用与上面相同的模式。

{
path:'',
component: something,
children:
   [
     path: 'settings',
     component: settings,
     children: 
        [
           path: 'nested',
           component: nested
        ]
   ]
}

答案 1 :(得分:0)

您可以按照以下方式使用unshift来代替Push

this.router.config.unshift(
  { path: 'page1', component: Page1Component },
  { path: 'page2', component: Page2Component }
);

在使用push时,路由将更新到末尾,即path:'**'之后,因此这些路由将无法访问。

请查看链接以获取更多信息 https://medium.com/@DenysVuika/dynamic-routes-with-angular-6fda03b7fa2c