如何隐藏管理链接在视图中的HTML。我不得不警惕:管理员和经理如何隐藏链接的警卫angular2
路由器配置:
{
path: 'manager',
component: ManagerComponent,
canActivate: [ManagerGuard]
},
{
path: 'user',
component: UserAdminComponent,
canActivate: [AdminGuard]
}
鉴于:
<li>
<a routerLink="/user" routerLinkActive="active-link">User</a>
</li>
我想隐藏/用户关联ManagerGuard时,但显示AdminGuard。
这是一个很好的解决方案。如果你的canActivate方法使用参数呢?例如canActivate(route:ActivatedRouteSnapshot,state:RouterStateSnapshot)。你如何获得指定的路由参数到模板中? – Spikeh
我只是偶然发现了那一个。如果您试图在prod模式下构建您的应用程序,它会抱怨那些缺少的参数。我会检查是否有可能实现这个目标。 – christoph
我最终编写了自己的自定义指令,它基本上取代了你的* ngIf。在我使用参数时,我无法直接调用它 - 所以我必须在需要应用权限的任何地方复制逻辑,例如* showForRoles =“[UserTypes.Admin,UserTypes.SuperUser]” – Spikeh