我的一个模块中有一个嵌套的路由对象,带有子路由的路由器出口:
const routes: Routes = [
{
path: 'portal',
component: Portal
},
children: [
{ path: '', redirectTo: 'meetings', pathMatch: 'full' },
{ path: 'meetings', component: MeetingsListComponent,
children: [
{ path: '', redirectTo: 'points', pathMatch: 'full' },
{ path: 'points', component: PointsListComponent},
{ path: 'point/:id', component: PointComponent}
]
}
]
}
];
MeetingsListComponent有一个标签菜单,其中包含一周中的几天,并且每天都会将会议列表呈现为accordion-elements。如果用户打开手风琴,那么MeetingsListComponent的嵌套路由器出口就会将议程点列表呈现为数据集:PointsListComponent。如果用户单击可数据行,则应使用一个议程点的详细视图呈现PointComponent:
onRowClick(e) {
this.router.navigate(['../point', e.value.obj.id], {relativeTo: this.route});
}
发生以下情况: 浏览器中的url-path从以下位置切换:
http://localhost:4200/portal/meetings/points
到
http://localhost:4200/portal/meetings/point/24fc3f42-7898-4044-9e24-511460d2001d
这是正确的。
但奇怪的是,PointComponent只是#34;有时候#34;。如果我单击菜单选项卡并且今天或明天更改了数据集,则会渲染数据表,但是通过单击该行,URL将更改而不会在路由器插座中呈现PointComponent。
但是,如果我在标签菜单中转到其他日期,则单击相同的组件(可数据行)将呈现详细视图,即路由器插座中的PointComponent。没有什么不同,它是填充其他数据的相同组件,而且都是。
因此,路由器导航事件似乎工作正常,但路由器插座不能这样做:
Here is a short vid of the routing error in action
我需要深入研究这个问题。