首页 > 解决方案 > 基于用户角色的路由

问题描述

我的应用程序根据角色具有三种用户类型。我想为所有这些用户使用相同的 url,允许共享地址。因此,使用 /ticker 用户角色客户端和 /admin/ticker 用户角色 admin 不是一个选项。

然而,用户角色和模型的每个组合都有一个特定的组件。因此,如果用户是客户端并且 AdminTickerComponet 是用户是管理员,我想将路由 /ticker 绑定到 ClientTickerComponent,如果客户端是某物,则我想绑定到 SomeTickerComponent。

我能想到的唯一解决方案是在路由中使用 TickerComponent 并留下它来创建基于身份验证的特定 [Rule]TickerComponent。

标签: angularangular-routingangular8

解决方案


您可以将路由动态添加到路由器

在你的 app.component 导入路由器

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);

问候


推荐阅读