我有一个大的角度1.x应用程序,我正在转换为角度5(通过完全重写)和嵌套延迟加载功能模块的路由匹配问题 .

该应用程序由几个功能模块组成,每个功能模块都有自己的路由模块,其中一些模块从路由视角深层嵌套3层 .

每个模块的路由配置如下所示,每个配置使用Router.forChild()包含在各自的功能模块中,但使用outerModule.forRoot()的路由级别appRoutes除外 .

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 / search

  • dms / projects /:projectID / Correspon

  • dms / projects /:projectID / correspondence /:id

问题是如果我转到URL dms/projects 它显示 dms/projects/:projectID/correspondence 的内容(通过直接转到此路径也可以正确显示) .

如果我删除了CorresponRoutes中的 CorrespondenceListComponent 路径,则为路径 dms/projects 正确显示ProjectListComponent .

如何显示预期的路径以防止路由器掉落到导航树上最远的叶子上?