嵌套路由器出口角度为5.2.0

时间:2018-01-16 16:42:03

标签: angular nested angular-routing

当涉及到很多孩子时,我在Angular中嵌套路线有问题。

这是我的RouteConfig:

{
    path: '',
    canActivate: [Auth],
    component: LayoutComponent,
    children: [
    {
        path: 'administrator',
        component: AdministratorComponent,
        canActivate: [Role],
        children: [
        {
            path: "users",
            component: UsersComponent,
            children: [
            {path: ':page', component: UsersComponent},
            {
                path: 'preview',
                children: [
                    {path: ':id', component: UsersComponent}
                ]
            },
            {path: 'add', component: UsersEditComponent},
            {
                path: 'edit',
                children: [
                   {path: ':id', component: UsersEditComponent}
                ]
            }
            ]
        },
        {path: "params", component: ParamsComponent}
    ]
}

}

问题显示在路线上 /administrator/users/add /administrator/users/edit/{id} /administrator/users/preview/{id} 因为嵌套路由器

我的app.component.html

<router-outlet (deactivate)="onDeactivate()"></router-outlet>

我的管理员组件

<div class="col s12">
    <div class="row tab-content">
        <router-outlet></router-outlet>
    </div>
</div>

在AdministratorComponent中我动态加载UsersComponent或ParamsComponent,在这种情况下我对UsersComponent感兴趣,它看起来像这样:

<div class="users-table">    
<!--some code--!>
    <a [routerLink]="['/administrator', 'users', 'add']" routerLinkActive="active">Add</a>
</div>

现在我要归档的是让这个<a>元素在AdministratorComponent的路由器插座中工作,这可能吗?如果没有,我该怎么重构呢?我需要一些新鲜的想法,因为我被卡住了。 我希望我的问题清楚明白。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

好的,我找到了这个例子的解决方案:

  1. 从/ administrator / users路径
  2. 中删除component: UsersComponent
  3. {path: '', component: UsersComponent}作为孩子添加到/ administrator / users
  4. 路线的正确顺序是:

    一个。 ''
    'add'
    C。 'preview'
    d。 ':page'

  5. 现在在嵌套路由器插座上的路由按预期工作。