如何导航到延迟加载的模块子项?

问题描述 投票:1回答:1

如何导航(或设置)Angular路由器,以便我导航延迟加载的模块的子项,将其显示到不同的路由器插座。以下是我的尝试;当加载EventsModule时,第一个子节点(路径:';;事件列表)应显示在名为“events”的路由器插座中(这样可行),但是当用户点击某个事件时,它们应该被导航到第二个子节点child(path:“eventUid”),应显示事件详细信息组件而不是事件列表。 Angular无法识别此路径(例如“companyName / events / eventId”)并重新路由到404页面。

app.module.ts

  const appRoutes: Routes = [
      { path: ':company/events', loadChildren: './main/events/events.module#EventsModule' },
      ...
    ];

app.component.html

<router-outlet></router-outlet>

events.module.ts

const routes: Routes = [
  {
    path: '',
    component: EventsComponent,
    canActivate: [AuthenticatedGuard, ActiveGuard],
    children: [
      { path: '', component: EventListComponent, outlet: 'events' },
      { path: ':eventUid', component: EventDetailsComponent, outlet: 'events' }
    ]
  }
];

events.component.html

<nav>...</nav>
<router-outlet name="events"></router-outlet>

请帮忙!

angular typescript routing lazy-loading router-outlet
1个回答
0
投票

所以,我找到了解决方案:

将EventModule的子代替为:[{path:'',component:EventListComponent},{path:':eventUid',component:EventDetailsComponent}]

并从events.component.html中的router-outlet中删除了“name”属性

© www.soinside.com 2019 - 2024. All rights reserved.