使用redirectTo如果你也使用了children参数,这可能吗?

Vas*_*its 20 routing typescript angular2-routing angular

正如您最近可能已经提到的那样,如果您还使用参数,则@angular/router 3.0.0-rc.1不允许使用user 参数.redirectTochildren

但在某些情况下,这肯定是我需要的东西.例如,我想要的是将所有对父路由器的请求重定向到第一个子节点.

这是我的路由器:

{
    path: 'project/:id',
    component: ProjectComponent,
    children: [
      {
        path: 'properties',
        component: ProjectPropertiesComponent
      },
      {
        path: 'stats',
        component: ProjectStatsComponent
      }
    ]
  }
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我希望每个进入project/:id路线的人都被重定向到第一个孩子(properties).

这有可能吗?

如果我这样做:

{
    path: 'project/:id',
    component: ProjectComponent,
    redirectTo: 'properties',
    children: [
      {
        path: 'properties',
        component: ProjectPropertiesComponent,
      },
      {
        path: 'stats',
        component: ProjectStatsComponent
      }
    ]
  }
Run Code Online (Sandbox Code Playgroud)

我当然得到这个错误:

EXCEPTION:错误:路由'project /:id'的配置无效:redirectTo和children不能一起使用

j2L*_*L4e 55

一个空的子路线应该做的工作:

  {
    path: 'project/:id',
    component: ProjectComponent,
    children: [
      {
        path: '',
        redirectTo: 'properties',
        pathMatch: 'full'
      },
      {
        path: 'properties',
        component: ProjectPropertiesComponent,
      },
      {
        path: 'stats',
        component: ProjectStatsComponent
      }
    ]
  }
Run Code Online (Sandbox Code Playgroud)

  • 我必须在redirectTo行之后添加pathMatch:'full'. (11认同)