【发布时间】:2020-11-10 18:56:19
【问题描述】:
我试图让不同的模块延迟加载,但由于某种原因/members 覆盖了/groups 路径,这意味着我在访问/groups 时看不到 GroupListComponent,而是看到了 MemberListComponent。
我看不出是什么导致它这样做,因为实际上它们应该是完全不同的路径。
app-routing.module.ts
...
const routes: Routes = [
{ path: 'groups', loadChildren: () => import('./../group/group.module').then(m => m.GroupModule) },
{ path: 'members', loadChildren: () => import('./../shared/modules/member/member.module').then(m => m.MemberModule) },
{ path: '', redirectTo: '/groups', pathMatch: "full" },
{ path: '**', component: PageNotFoundComponent },
];
...
group-routing.module.ts
...
const routes: Routes = [
{ path: '', component: GroupListComponent },
{ path: ':groupid', component: GroupDetailedComponent },
{ path: ':groupid/members', component: MemberListComponent },
{ path: ':groupid/members/:memberid', component: MemberDetailedComponent },
];
...
member-routing.module.ts
...
const routes: Routes = [
{ path: '', component: MemberListComponent },
{ path: ':memberid', component: MemberDetailedComponent }
];
...
绕过,但不是真正的解决方案
如果我将member-routing.module.ts 更改为
...
const routes: Routes = [
{ path: 'all', component: MemberListComponent },
{ path: ':memberid', component: MemberDetailedComponent }
];
...
那么这不再是问题,但为了网站的一致性,我不想让/groups 列出所有组,而/members/all 列出所有成员。
可能相关的额外信息
GroupModule 导入 MemberModule 是为了获得诸如 /groups/:groupid/members 之类的 URL,但这可能会导致 MembersModuleRouting 覆盖 GroupsModuleRouting,因为它是在加载 GroupsModule 时加载的,但即便如此。
【问题讨论】:
标签: angular routes url-routing