我正在尝试在应用程序启动时加载辅助路由。 虽然引用了Victor Savkin's ng2 router article,this S.O question和this blog post on named router outlets,但我没有设法使其正常运行。我还看到在github中已经提出了possibly related issue,现在似乎已经解决了。
由于我的代码与指定的路由器插座文章非常相似,我将重复that code。
路由配置如下:
const routes: Routes = [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'speakers', component: SpeakersComponent, children: [
{ path: 'speakersList', component: SpeakersListComponent, outlet: 'list' },
{ path: ':id', component: BioComponent, outlet: 'bio' }
] },
];
app.component.html包含
<div class="app-content">
<router-outlet></router-outlet>
</div>
speaker.component.html
<router-outlet name="list"></router-outlet>
<router-outlet name="bio"></router-outlet>
home.component.ts是一个基本组件,它允许用户通过单击按钮导航到扬声器组件:
<button md-raised-button class="md-primary"
[routerLink]="['/speakers', {outlets: {list: ['speakersList'], bio: ['none']}}]">
Speakers
</button>
我正在尝试在应用程序启动时显示扬声器组件,即在路由的重定向中。我试图将其更改为:
const routes: Routes = [
{ path: '', redirectTo: 'speakers/speakersList', outlet: 'list', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'speakers', component: SpeakersComponent, children: [
{ path: 'speakersList', component: SpeakersListComponent, outlet: 'list' },
{ path: ':id', component: BioComponent, outlet: 'bio' }
] },
];
但它不起作用。在不使用无组件路由的情况下,实现此目的的正确方法是什么?我想没有设法翻译默认路由中的routerlink中的内容。
谢谢!
编辑2:似乎是一个ng2错误。您可以参考正在进行的进展here。
编辑3:根据Victor Savkin所说:&#39;问题是我们总是要求主要路线出现,即第一条儿童路线不应该有路径。一个修复即将到来。有关issue here
的更多信息