【问题标题】:Redirect to first allowed route in Angular 2?重定向到Angular 2中第一个允许的路线?
【发布时间】:2016-11-22 14:39:22
【问题描述】:

我有以下路线配置:

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] }
]; 

问题是,我没有“仪表板”,只有域管理页面,虽然每个授权用户都可以访问其中的至少一个,但所有用户都无法使用它们。

是否有选项说:重定向到第一条路线,可以激活?或者我需要在路径“/”下编写一个虚拟组件,根据用户角色进行动态重定向?

【问题讨论】:

    标签: angular angular2-routing roles


    【解决方案1】:

    三是没有办法重定向到第一个可用的路由。 使用带有仅根据角色重定向的虚拟组件的虚拟路由是可行的方法。您也可以在守卫https://angular.io/docs/ts/latest/guide/router.html#!#guards 中进行重定向,但虚拟路由无论如何都需要一个组件。

    您还可以使用router.resetConfig() 根据Dynamic routing based on external data 中所示的角色加载路由

    【讨论】:

    • 所以这就是我的想法,我需要为“虚拟”组件创建一个角色,它将我重定向到某个地方,但是这个虚拟组件不必是可视的(模板等)?跨度>
    • 你可以使用template: ''。我在每个项目中都有一个DummyComponent,只是为了能够列出路由器需要但我不需要的组件。 AFAIR 最近有一个拉取请求,因此在这种情况下不再需要组件。
    猜你喜欢
    • 2017-02-26
    • 2017-08-10
    • 2021-11-26
    • 1970-01-01
    • 2016-07-07
    • 2021-07-07
    • 2017-01-21
    • 2017-04-17
    • 2012-11-18
    相关资源
    最近更新 更多