У меня есть / коучинг маршрут.
Если я супер-администратор, я могу видеть список всех тренеров-администраторов из системы (угадайте правильно, когда вы идете на / коучинг маршрут (нажатием кнопки)).
Если я являюсь администратором коуча, я могу видеть список всех коучей из системы. (Опять же, я хочу использовать тот же маршрут / коучинг).
В этом случае я создал 3 компонента: CoachAdminListComponent, CoachListComponent и CoachComponent. HTML-код CoachComponent выглядит следующим образом:
<app-coach-admin-list
*ngIf="isCurrentUserSuperAdmin()"
[items]="coachAdmins$ | async"
[itemInfo]="coachAdminInfo$ | async"
[loggedUser]="loggedUser"
[cachedItems]="allCoachAdmins$ | async"
[loading]="loading"
(onSubmit)="handleOnSubmit($event)"
(onFilter)="handleOnFilter($event)"
(onMenuItem)="handleOnMenuItem($event)">
</app-coach-admin-list>
<app-coach-list
*ngIf="!isCurrentUserSuperAdmin()"
[items]="coaches$ | async"
[itemInfo]="organisationInfo$ | async"
[loggedUser]="loggedUser"
[cachedItems]="allCoaches$ | async"
[loading]="loading"
(onSubmit)="handleOnSubmit($event)"
(onFilter)="handleOnFilter($event)"
(onMenuItem)="handleOnMenuItem($event)">
</app-coach-list>
Я понимаю, что это ужасный код, но как я могу отобразить каждый компонент, когда роль удобна для них?
При попытке войти в систему в качестве администратора коуча я получил следующую ошибку:
ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression
has changed after it was checked. Previous value: '[object Object]'.
Current value: 'false'.
The coach.module.ts:
const routes: Routes = [{
path: 'coaching',
component: CoachComponent,
canActivate: [AuthGuard]
}];
Конечно, в компоненте coach есть 2 модуля, включенные в его файл, поэтому я пытаюсь найти способ его визуализации без ошибки, а также в понятной форме?
Спасибо.