正如您现在已经在最新的@angular/router 3.0.0-rc.1
中一样,如果您还使用redirectTo
参数,则不允许您使用children
参数。
但在某些情况下,确实这就是我需要的东西。 例如,我想要的是将所有请求重定向到第一个子节点到父路由器。
这是我的路由器:
{
path: 'project/:id',
component: ProjectComponent,
children: [
{
path: 'properties',
component: ProjectPropertiesComponent
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}
我希望每个进入project/:id
路线的人都被重定向到我的第一个孩子(properties
)。
这有可能吗?
如果我这样做:
{
path: 'project/:id',
component: ProjectComponent,
redirectTo: 'properties',
children: [
{
path: 'properties',
component: ProjectPropertiesComponent,
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}
我当然得到这个错误:
EXCEPTION:错误:路线'project /:id'的配置无效:redirectTo和子项不能一起使用
答案 0 :(得分:48)
空子路线应该完成这项工作:
{
path: 'project/:id',
component: ProjectComponent,
children: [
{
path: '',
redirectTo: 'properties',
pathMatch: 'full'
},
{
path: 'properties',
component: ProjectPropertiesComponent,
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}
答案 1 :(得分:0)
j2L4e答案是正确的,但我也被迫将'pathMatch'类型设置为'前缀'..
pathMatch:'prefix'
{
path: 'project/:id',
component: ProjectComponent,
children: [
{
path: '',
redirectTo: 'properties',
pathMatch: 'prefix'
},
{
path: 'properties',
component: ProjectPropertiesComponent,
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}