如何隱藏管理鏈接在視圖中的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