深层嵌套延迟加载模块的网址匹配不正确

时间:2018-03-08 09:37:14

标签: angular angular-routing

我有一个大的角度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 /项目/搜索
  • DMS /项目/:专案编号/对应
  • DMS /项目/:专案编号/对应/:ID

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

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

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

0 个答案:

没有答案