Angular 2+连续路线参数;最后一个无组件

时间:2017-10-25 04:43:26

标签: angular angular4-router

这里我有一个路由路径,后跟两个路由参数,路由看起来像section/sectionId/dashboardId

const appRoutes: Routes = [
  {
    path: 'section/:sectionId',
    component: SectionComponent,
    children: [
      {
        path: ':dashboardId',
        component: DashboardComponent
      },
    ]
  },
];

我需要的是为此添加无组件的第三个参数。我需要将它用作ID作为参数,我可以传递给我的一个组件。所以我尝试了这个:

const appRoutes: Routes = [
  {
    path: 'section/:sectionId',
    component: SectionComponent,
    children: [
      {
        path: ':dashboardId',
        component: DashboardComponent,
        children: [
          {
            path: ':dashboardParam',
          },
        ]
      },
    ]
  },
];

我得到拒绝承诺说“必须提供以下其中一项:component,redirectTo,children或loadChildren”。

所以我将redirectTo: ':dashboardId'添加到:dashboardParam子路由,然后我收到“无法重定向到':dashboardId'。找不到':dashboardId'。”

如何在不收到错误的情况下添加第三个参数?

1 个答案:

答案 0 :(得分:2)

实际上,您无法在没有相应组件的情况下编写路由或进行重定向。你可以写这样的

const appRoutes: Routes = [
  {
    path: 'section/:sectionId',
    component: SectionComponent,
    children: [
      {
        path: ':dashboardId/:dashboardParam',
        component: DashboardComponent    
      },
    ]
  },
];

并在组件中检查dashboardParam参数是否通过

传递给组件
constructor(params: RouteParams) {
    var dashboardParam= params.get("dashboardParam");

    if (dashboardParam) {
        ...
    }
}