Angular 5无法匹配延迟加载模块的命名出口上的任何路由

Lit*_*ewb 6 routerlink router-outlet angular angular-router

我的Root模块的路由是这样的:

        RouterModule.forRoot([
        { path: '', redirectTo: 'management-portal', pathMatch: 'full' },            
        { path: 'management-portal', loadChildren: './xxx/management-portal.module#ManagementPortalModule', canActivate: [AuthGuard] },          
        { path: 'login', component: LoginComponent },
        { path: '**', component: NotFoundComponent }
    ], {
       enableTracing: true 
    })
Run Code Online (Sandbox Code Playgroud)

它按预期工作,我可以在登录后路由到ManagementPortalModule.让我们来看看我的懒惰的ManagementPortalModule.

有一个命名的路由器插座.

 <router-outlet name='sub'></router-outlet>
Run Code Online (Sandbox Code Playgroud)

我在ManagementPortalModule中的路线.

    RouterModule.forChild([
  {
    path: '', component: ManagementPortalComponent,        
    children: [            
        { path: '', component: Test1Component, outlet: 'sub' },
        { path: 'test2', component: Test2Component, outlet: 'sub' }            
    ]
  }         
])
Run Code Online (Sandbox Code Playgroud)

它可以在开始时在'sub'出口加载Test1Component.我点击链接时想要路由到Test2Component

<a  [routerLink]="[{ outlets: { sub: ['test2'] } }]"></a>
Run Code Online (Sandbox Code Playgroud)

生成的Url

/管理门户/(子:TEST2)

当我点击时没有任何反应.然后我试了一下

<a [routerLink]="['',{ outlets: { sub: ['test2'] } }]">
Run Code Online (Sandbox Code Playgroud)

网址

/管理门户(子:TEST2)

我认为URL是正确的格式,按照这个,当我点击然后出错

无法匹配任何路线.网址细分:'test2'

请帮助,非常感谢!

moh*_*rim 9

尝试使用命名出口路由的非空顶级路径.

在ManagementPortalModule中路由.

    RouterModule.forChild([
  {
    path: 'load', component: ManagementPortalComponent,        
    children: [            
        { path: '', component: Test1Component, outlet: 'sub' },
        { path: 'test2', component: Test2Component, outlet: 'sub' }            
    ]
  }         
])
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅:Angular 4延迟加载,命名路由器出口无法正常工作