代码之家  ›  专栏  ›  技术社区  ›  Get Off My Lawn

路由器:基于相同路由路径的访问显示组件

  •  -1
  • Get Off My Lawn  · 技术社区  · 4 年前

    我有一个 home 一个管理员和一个用户都使用的路线,有没有一种方法可以展示 UserComponent 如果您以用户身份登录,并显示 AdminComponent 如果你以管理员身份登录?

    这就是我目前拥有的:

    const routes: Routes = [
      { path: 'login', component: LoginComponent },
      {
        path: 'home',
        component: HomeComponent,
        children: [
          // Children routes mix of user/admin paths
        ]
      }
    ]
    

    我当时想的是,也许我可以做类似的事情,但是,我不知道如何在脚本中的这一点上访问服务。

    component: this.userService.isAdmin ? AdminComponent : UserComponent,
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   AC101    4 年前

    您可以在HomeComponent中这样做:

    HTML:

    <admin-component *ngIf="isAdmin; else userHome;"></admin-component>
    <ng-template #userHome>
        <user-component></user-component>
    </ng-template>
    

    TS:

    class HomeComponent {
        public isAdmin: boolean;
    
        constructor(userService: UserService) {
             this.isAdmin = userService.isAdmin;
        }
    }