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

Roo*_*ife 1 angularjs ng-show

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

如果你是一个Admin回报是roles: ["Admin", "User", "Editor"]

如果你是一个User回报是roles: ["User"]

如果你是一个Editor回报是roles: ["User", "Editor"]

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

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

Ign*_*rde 5

这不是一个好主意.您通过计算数组长度来管理应用程序的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;
}
Run Code Online (Sandbox Code Playgroud)