Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 深嵌套延迟加载模块的url匹配不正确_Angular_Angular Routing - Fatal编程技术网

Angular 深嵌套延迟加载模块的url匹配不正确

Angular 深嵌套延迟加载模块的url匹配不正确,angular,angular-routing,Angular,Angular Routing,我有一个大型angular 1.x应用程序,我正在将其转换为angular 5(通过完全重写),并且在嵌套的延迟加载功能模块的路由匹配方面存在问题 该应用程序由几个功能模块组成,每个功能模块都有自己的路由模块,从路由角度看,其中几个模块嵌套在3个层次的深处 每个模块的路由配置如下所示,每个配置都使用Router.forChild()包含在各自的功能模块中,路由级别批准除外,它使用outerModule.forRoot() 这为我提供了如下路线: 管理系统/项目 dms/项目/搜索 dms/项目

我有一个大型angular 1.x应用程序,我正在将其转换为angular 5(通过完全重写),并且在嵌套的延迟加载功能模块的路由匹配方面存在问题

该应用程序由几个功能模块组成,每个功能模块都有自己的路由模块,从路由角度看,其中几个模块嵌套在3个层次的深处

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

这为我提供了如下路线:

  • 管理系统/项目
  • dms/项目/搜索
  • dms/项目/:项目ID/通信
  • dms/projects/:projectID/correctance/:id
问题是,如果我转到url
dms/projects
,它会显示
dms/projects/:projectd/correlation
(直接转到此路径也会正确显示)

如果我去掉了通讯路由中的
respondenceListComponent
路径,那么对于路由
dms/projects
,ProjectListComponent将正确显示

如何获得显示和防止路由器掉入导航树上最远叶子的预定路线

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
    }
]