繁体   English   中英

Angular 4延迟加载模块不适用于指定的子插座

[英]Angular 4 lazy load module doesn't work with named child outlet

我正在尝试为模块实现延迟加载。 该模块具有一串具有唯一出口名称的子路线。 当我尝试访问路线时,这似乎不起作用。

从我保存的该示例可以看出这: https : //plnkr.co/edit/NNXAoZItM00RIIxzemts?p=preview

您可以看到我的子路线设置为

  { path: 'list',    component: HeroListComponent, outlet: 'abc' },

hero-routing.module.ts中

和路由器出口到:

 <router-outlet name="abc"></router-outlet> 

hero.component.ts中

在本地运行时,我应该能够访问localhost:3000 / heroes /(abc:list),但它似乎无法正常工作。

注意:您可以通过下载zip文件并运行npm install然后npm start来在本地运行plunker示例。

子路由似乎不适用于默认的未修改路由。

更改延迟加载的模块路由,以包括从默认的未修改路由到命名路由的重定向。

const routes: Routes = [
  { path: '',   redirectTo: 'start', pathMatch: 'full' },
  { path: 'start', component: HeroComponent,
    children: [
      { path: 'list',    component: HeroListComponent, outlet: 'abc' },
      { path: ':id', component: HeroDetailComponent }
    ]
  }
];

最后,更改“ heroes”延迟加载模块的导航链接,以包含命名的出口信息。 确保将完整的URL指定为“ / heroes / start”,请勿将其保留为默认的“ / heroes”。

<a [routerLink]="['/heroes/start',{outlets: {abc:['list']}}]"  
routerLinkActive="active">Heroes</a>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM