あなたはおそらくすでに最新の@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
}
]
}
もちろんこのエラーが発生します:
例外:エラー:ルート 'project /:id'の構成が無効です:redirectToと子を一緒に使用することはできません
空の子ルートが仕事をするはずです:
{
path: 'project/:id',
component: ProjectComponent,
children: [
{
path: '',
redirectTo: 'properties',
pathMatch: 'full'
},
{
path: 'properties',
component: ProjectPropertiesComponent,
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}
j2L4eの答えは正しいですが、「pathMatch」タイプを「prefix」に設定することも強制されました。
pathMatch: 'prefix'
{
path: 'project/:id',
component: ProjectComponent,
children: [
{
path: '',
redirectTo: 'properties',
pathMatch: 'prefix'
},
{
path: 'properties',
component: ProjectPropertiesComponent,
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}