为每个路由配置指定完整的路径。在路由配置时,需要为每个子路由指定一个完整的路径,以确保它具有正确的父级路径。例如,对于以下路由结构:
{
path: 'products',
children: [
{ path: '', component: ProductsListComponent },
{ path: ':id', component: ProductDetailComponent }
]
}
应该将其改为:
{
path: 'products',
children: [
{ path: 'list', component: ProductsListComponent },
{ path: 'detail/:id', component: ProductDetailComponent }
]
}
这里的两个子路由都有一个完整的路径,products/list
和products/detail/:id
。通过使用完整路径,可以避免路由片段缺少父级的错误。
在至少使用Angular 6的应用程序中,可以通过使用pathMatch
属性将空路径配置为重定向到一个默认的子路由,这个子路由会自动添加父路由的路径。例如:
{
path: 'products',
children: [
{ path: '', redirectTo: 'list', pathMatch: 'full' },
{ path: 'list', component: ProductsListComponent },
{ path: 'detail/:id', component: ProductDetailComponent }
]
}
这里的空路径配置会重定向到products/list
,而不会在父路径中产生错误。
代码示例:
const routes: Routes = [
{
path: 'products',
children: [
{ path: '', redirectTo: 'list', pathMatch: 'full' },
{ path: 'list', component: ProductsListComponent },
{ path: 'detail/:id', component: ProductDetailComponent }
]
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
上一篇:Angular路由默认辅助路由