我有一个大的角度1.x应用程序,我转换为角度5(通过完全重写)并且存在嵌套延迟加载的功能模块的路由匹配问题。
该应用程序由多个功能模块组成,每个功能模块都有自己的路由模块,其中一些模块从路由角度嵌套了3层。
每个模块的路由配置如下所示,每个配置使用Router.forChild()包含在各自的功能模块中,但路由级别appRoutes除外,它使用outerModule.forRoot()。
const appRoutes: Routes = [
{
path: 'dms',
loadChildren: 'app/dms/dms-core.module#DMSCoreModule'
},
{
path: '',
redirectTo: 'dms',
pathMatch: 'full'
}
];
const dmsRoutes: Routes = [
{
path: '',
component: DMSCoreComponent,
canActivate: [AuthGuard],
children: [
{
path: 'account',
loadChildren: 'app/account/account.module#AccountModule'
},
{
path: 'contacts',
loadChildren: 'app/contacts/contact.module#ContactModule'
},
{
path: 'projects',
loadChildren: 'app/projects/project.module#ProjectModule'
}
]
}
]
const projectRoutes: Routes = [
{
path: '',
component: ProjectComponent,
children: [
{
path: '',
component: ProjectListComponent
},
{
path: ':id/correspondence',
loadChildren: 'app/correspondence/correspondence.module#CorrespondenceModule'
}
]
}
];
export const correspondenceRoutes: Routes = [
{
path: '',
component: CorrespondenceListComponent,
},
{
path: 'search',
component: CorrespondenceSearchComponent
},
{
path: ':id',
component: CorrespondenceDetailComponent
}
]
这给了我以下路线:
问题是如果我转到网址dms/projects
,它会显示dms/projects/:projectID/correspondence
的内容(通过直接转到此路径也可以正确显示)。
如果我删除了CorresponRoutes中的CorrespondenceListComponent
路径,则为路由dms/projects
正确显示ProjectListComponent。
如何显示预期路线以防止路由器掉落到导航树上最远的树叶?