2

这里我有一个路由路径,后跟两个路由参数,路由看起来像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',
          },
        ]
      },
    ]
  },
];

我收到了一个拒绝承诺,上面写着“必须提供以下内容之一:组件、redirectTo、children 或 loadChildren”。

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

如何添加第三个参数而不出现错误?

4

1 回答 1

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) {
        ...
    }
}
于 2017-10-25T05:10:47.360 回答