2016-11-22 4 views
2

Я следующую конфигурацию маршрута:Перенаправление на первый разрешенный маршрут в Угловом 2?

const routes: Routes = [ 
    { path: '', redirectTo: 'customers', pathMatch: 'full' }, 
    { path: 'customers', component: CustomerListComponent, canActivate: [CustomerGuard] }, 
    { path: 'products', component: ProductListComponent, canActivate: [ProductGuard] }, 
    { path: 'sales', component: SalesListComponent, canActivate: [SalesGuard] } 
]; 

Проблема заключается в том, у меня нет «Dashbord», только страницы управления доменом, и хотя каждый зарегистрированный пользователь будет иметь доступ к по меньшей мере одному из них, ни один из них будет быть доступным для всех пользователей.

Есть ли возможность сказать: перенаправить на первый маршрут, который можно активировать? Или мне нужно написать виртуальный компонент по пути '/', который будет выполнять динамическое перенаправление на основе пользовательских ролей?

ответ

1

Три не могут перенаправить на первый доступный маршрут. Использование пустого маршрута с фиктивным компонентом, который просто перенаправляет в зависимости от роли, - это путь. Вы также можете сделать переадресацию в защитнике https://angular.io/docs/ts/latest/guide/router.html#!#guards, но для фиктивного маршрута в любом случае нужен компонент.

Что вы можете сделать, используя router.resetConfig() для загрузки маршрутов в зависимости от роли, как показано на Dynamic routing based on external data

+0

Так это то, что я думал, мне нужно создать роль для компонента «фиктивной», который будет перенаправлять меня куда-то, но этот фиктивный компонент не обязательно должен быть визуальным (шаблон и т. д.)? –

+0

Вы можете просто использовать 'template: '''. У меня есть один «DummyComponent» в каждом проекте, чтобы иметь возможность перечислять компонент, где требуется маршрутизатор, но не я. AFAIR недавно был запрос на растяжение, так что в таких случаях компонент больше не требуется. –

 Смежные вопросы

  • Нет связанных вопросов^_^