除了我建立的AuthGuard之外,我只是尝试为模板构建类似保护功能的东西。在我的AuthService中,我得到public function isAuthorized(...)
,应检查用户是否有权查看模板中的某些元素。
所以这是我的模板的HTML
<button [routerLink]="['/somewhere']">
Personen
</button>
我得到了这条路线
{
path: 'somewhere',
canActivate: [AuthGuard],
data: {
permissions: [
"add:student",
"edit:student",
"delete:student"
]
}
}
因此,激活路由所需的权限存储在路由常量中。我可以轻松地在AuthService.isAuthorized(...)
中访问此常量。
但是我获得了整个路由树。
无论如何做这样的事情
<button [routerLink]="['/somewhere']"
*ngIf=AuthService.isAuthorized(***)>
Personen
</button>
其中***
返回按钮绑定到的路由的数据,在本例中为/somewhere
。