Angular2嵌套路由器插座

时间:2016-10-06 14:15:09

标签: angular angular2-routing

我正在玩Angular 2,我在使用路由器方面遇到了一些麻烦。 我想在主路由器插座内安装第二个路由器插座。

在第一个路由器插座内,我重定向到主页,我有第二个路由器插座:

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

这是我没有导入的app.routing。

const appRoutes: Routes = [
    { path: '', component: HomeComponent },
    { path: 'login', component: LoginComponent},
    { path: 'days', component: DaysComponent, outlet: 'main'}
];

export const appRoutingProviders: any[] = [

];

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);

在HomeComponent ngOnInit上我有这个

this.router.navigateByUrl('/(main:days)');

但是这会导致网络崩溃并出现以下错误:

未捕获(承诺):错误:无法找到要加载的插座主页&#39; DaysComponent&#39;

怎么可能在主要的第二个路由器插座内?

谢谢。

1 个答案:

答案 0 :(得分:9)

尝试使用此路线配置:

const appRoutes: Routes = [
    { path: '', component: HomeComponent },
    { path: 'login', component: LoginComponent},

    {
        path: 'wrap',
        component: HomeComponent,
        children: [
          {
            path: 'days',
            component: DaysComponent,
            outlet: 'main'
          }
        ]
    }
];

和此网址:

this.router.navigate(['/wrap', { outlets: { main: 'days' } }]);

或(等效)

this.router.navigateByUrl('/wrap/(aux:aux)');