Маршруты на основе пользовательских ролей - PullRequest
1 голос
/ 20 января 2020

Мое приложение имеет три типа пользователей в зависимости от ролей. Я хотел бы использовать один и тот же URL для всех этих пользователей, что позволяет делиться адресом. Поэтому использование / ticker для клиента роли пользователя и / admin / ticker для администратора роли пользователя не вариант.

Однако каждая комбинация роли пользователя и модели имеет определенный c компонент. Поэтому я хотел бы связать маршрут / тикер с ClientTickerComponent, если пользователь является клиентом, а AdminTickerComp onet - это пользователь с правами администратора и SomethingTickerComponent, если клиент является чем-то.

Единственное решение, которое я мог бы найти out - использовать TickerComponent в маршруте и оставить его для создания специфицированного c [Rule] TickerComponent на основе аутентификации.

1 Ответ

1 голос
/ 20 января 2020

Вы можете динамически добавлять маршруты к маршрутизатору

В вашем app.component импортировать Router

import { Router } from '@angular/router';

в конструкторе

private router: Router

в ngOnInit для каждого добавляемого маршрута

let route = {};
if (role === 'Client') {
    route = {
        path: 'ticker',
        component: ClientTickerComponent
    };
}
if (role === 'Admin') {
    route = {
        path: 'ticker',
        component: AdminTickerComponent
    };
}

this.router.config.unshift(route);

С уважением

...