目前,我的所有用户都是在我的应用程序中构建的,如下所示:
{
id: 1,
name: 'John Doe',
roles: [{name: 'owner'}, {name: 'admin'}, {name: 'client'}]
} 我的应用程序中有一个仪表板,它应该只向具有特定角色的用户显示应用程序的部分内容。让我们说,只有所有者应该能够创建或删除一些东西。我可以在html中这样做,只让管理员和所有者能够看到html的片段吗?因此,我给出了当前用户的角色,并告诉他应该为该按钮提供哪些角色。
<button
class="btn btn-danger"
permission="vm.user.roles | {'admin', 'owner'}"
Delete
</button>发布于 2016-12-22 16:07:48
如果条件为false,ng-if将从DOM中删除该元素。
<button class="btn btn-danger" ng-if="vm.hasRole('admin') || vm.hasRole('owner')">
Delete
</button>如果您只想隐藏元素而不是删除它,则可以使用ng-show。
在您的控制器中:
$scope.hasRole = function(roleName) {
return user.roles.filter(function(role) {
return role.name === roleName;
}).length > 0;
}发布于 2016-12-22 16:05:59
使用数组中的函数indexOf来查找元素是否是数组的一部分。如果找到,它将返回元素的位置,或者返回-1。
所以您可以使用如下表达式
<button
class="btn btn-danger"
ng-show = "['admin', 'owner'].indexOf(roles)!=-1">
Delete
</button>https://stackoverflow.com/questions/41287154
复制相似问题