如何在视图 html 中隐藏管理链接。我必须守护:管理员和经理
路由器配置:
{
path: 'manager',
component: ManagerComponent,
canActivate: [ManagerGuard]
},
{
path: 'user',
component: UserAdminComponent,
canActivate: [AdminGuard]
}
视图中:
<li>
<a routerLink="/user" routerLinkActive="active-link">User</a>
</li>
我想隐藏 ManagerGuard 的 /user 上的链接,但显示 AdminGuard 的链接。
另外,如果已经以可能有帮助的方式回答,我在这里使用了另一种方法。由于您已经在 Guard 中拥有 canActivate 方法,因此您还可以使用该 Guard 注入导航组件,并且可以直接调用这些 canActivate 方法:
在包含导航的组件中
constructor(private adminGuard: AdminGuard)
然后在模板中
<li *ngIf="adminGuard.canActivate()">
<a routerLink="/user" routerLinkActive="active-link">User</a>
</li>
Edit
在我的情况下,这在生产模式下不起作用(如果您使用必须注入的参数)。我只是尝试编译它,但角度抱怨缺少参数。如果您不使用参数,则效果很好,或者,如果您不在函数中使用参数 - 那么只需传递
<li *ngIf="adminGuard.canActivate(null,null)">
<a routerLink="/user" routerLinkActive="active-link">User</a>
</li>
另一件事:如果您在模板中使用像上面的“adminGuard”这样的变量,则它必须是公共的 - 而不是私有的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)