我已经在 Angular 中设置了我的路由和路由保护,它们非常适合阻止用户访问他们不应该访问的路由。但是,我的所有页面都有一个全局导航部分,它基本上循环遍历我的路由数组并显示所有链接(使用 *ngFor)。我希望在循环遍历它们时评估每个 Route 以查看是否使用 canActivate 该路由。这样,我就不会向用户显示他们无法访问的链接。我想以一种重复使用相同的路由保护逻辑的方式来做到这一点。
我有一系列这样的路线:
const routes: Routes = [
{
path: 'dashboard-simple',
component: DashboardSimpleComponent,
canActivate: RoleGuard,
data: {roles: ['Basic']}
},
{
path: 'dashboard-advanced',
component: DashboardAdvancedComponent,
canActivate: RoleGuard,
data: {roles: ['Admin']}
},
// And so on...
];
模板如下所示:
<ul>
<li *ngFor="let route of routes"><a [routerLink]="route.path">{{ route.path }}</a></li>
</ul>