Angular 2:如何在应用程序启动时加载辅助路由

时间:2016-10-27 15:46:33

标签: angular typescript angular2-routing

我正在尝试在应用程序启动时加载辅助路由。 虽然引用了Victor Savkin's ng2 router articlethis S.O questionthis 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中的内容。

谢谢!

修改:Related plunk

编辑2:似乎是一个ng2错误。您可以参考正在进行的进展here

编辑3:根据Victor Savkin所说:&#39;问题是我们总是要求主要路线出现,即第一条儿童路线不应该有路径。一个修复即将到来。有关issue here

的更多信息

0 个答案:

没有答案