У меня есть маршрут 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,
0
Get Off My Lawn 22 Июн 2020 в 17:29

1 ответ

Лучший ответ

Вы можете сделать это в 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;
    }
}
1
AC101 22 Июн 2020 в 14:46