【问题标题】:Lazy loaded Angular modules interfere although paths are completely different尽管路径完全不同,但延迟加载的 Angular 模块会产生干扰
【发布时间】: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


    【解决方案1】:

    睡了一夜之后,我回到这个问题,很明显我必须在GroupRoutingModule 中再次加载MemberModule。所以我只需要更改 2 行代码即可解决此问题。

    更改了 group-routing.module.ts

    const routes: Routes = [
      { path: '', component: GroupListComponent },
      { path: ':groupid', component: GroupDetailedComponent },
      { path: ':groupid/members', loadChildren: () => import('./../shared/modules/member/member.module').then(m => m.MemberModule) },
    ];
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 2018-11-15
      • 2018-09-01
      • 1970-01-01
      相关资源
      最近更新 更多