NG-显示数组是否包含某个值而不是另一个

NG-Show if array contains a certain value and not another

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

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

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

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

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

我确信有一种 better/smarter 方法可以做到这一点,或者这种方法可能更容易做到。我只是不确定如何以不同的方式去做。感谢您的建议。

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

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

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

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

这不是个好主意。您正在通过计算数组长度来管理应用程序的 UI。如果这改变了怎么办?我建议始终验证是否拥有所需的角色。例如 ng-show="hasRole('User')"

$scope.hasRole = function(role){
     var indexOfRole = $scope.roles.indexOf(role); // or whatever your object is instead of $scope.roles
     if (indexOfRole === -1)
          return false;
     else
          return true;
}

这对我有用:

<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,否则显示