NG-Show如果数组包含某个值而不是另一个值

时间:2015-10-09 21:38:26

标签: angularjs ng-show

我有3个用户权限 - 管理员,用户和编辑者。设置方式是:

如果您是Admin,则返回roles: ["Admin", "User", "Editor"]

如果您是User,则返回roles: ["User"]

如果您是Editor,则返回roles: ["User", "Editor"]

现在我现在拥有的是其他两个人的ng-show="object.roles.length < 2" = User等等。

我确信有更好/更聪明的方法可以做到这一点,或者这样做更容易。我只是不确定如何以不同的方式去做。谢谢你的建议。

2 个答案:

答案 0 :(得分:4)

<div ng-show="roles.indexOf('Admin') >= 0"

或者,为了更清洁,委托范围函数:

<div ng-show="hasRole('Admin')"

$scope.hasRole = function(roleName) {
    return roles.indexOf(roleName) >= 0;
}

答案 1 :(得分:0)

这对我有用:

<div class="lil" ng-show="role.rileName.includes('someother') == 0 && role.rileName.includes('Admin')">
    <a class="{{role.rileName}}" href="javascript:void(0);" title="{{role.rileName}}" ng-controller="sampleRequestController" ng-click="addSamples(role.rileID,items.CanOrder);">{{role.rileName}}</a>
</li>

它不会显示if == 0,否则会显示。