11

我的根模块路径是这样的:

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

它按预期工作,我可以在登录后路由到 ManagementPortalModule。让我们看看我的延迟加载的 ManagementPortalModule。

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

 <router-outlet name='sub'></router-outlet>

我在 ManagementPortalModule 中的路线。

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

它可以在开始时将 Test1Component 加载到“子”插座中。单击链接时,我想路由到 Test2Component

<a  [routerLink]="[{ outlets: { sub: ['test2'] } }]"></a>

生成的网址

/管理门户/(子:test2)

单击时没有任何反应。然后我尝试了

<a [routerLink]="['',{ outlets: { sub: ['test2'] } }]">

网址

/管理门户(子:test2)

我认为根据this的url格式正确,然后点击时出现错误

无法匹配任何路由。URL 段:'test2'

请帮忙,非常感谢!

4

1 回答 1

15

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

ManagementPortalModule 中的路由。

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

有关更多详细信息,请参阅:Angular 4 Lazy loading with named router-outlet not working

于 2017-11-26T09:42:47.523 回答