javascript - 如果我无权访问,则显示/隐藏按钮

标签 javascript angularjs

我有一个 API 可以识别我是否有任何权限。我想要做的是,如果我没有特定权限,则显示/隐藏按钮。

这是我使用 api 的代码:

function users (){
        $http.get('/api/users')
        .then(function(data){
            $scope.thisUser = data.data.Response;
            //console.log($scope.thisUser);
        });
    }

它的响应如下:

0:{RoleName: "basic user", Select: true}
1:{RoleName: "advance user", Select: false}

如果我没有高级用户权限,我如何传递 ng-show/ng-hide 参数以允许或拒绝下一个按钮的可见性(如果选择: false):

<button class="btn btn-info">Next Step</button>

我不会触发任何权限搜索,因为当我使用 api 时,它会识别用户的权限。

我正在使用 AngularJs 和 Javascript。

提前致谢。

最佳答案

如果您能够使用名为 lodash 的库,你应该能够做到

<button ng-show="isUserAdvanced()" class="btn btn-info">Next Step</button>

然后添加一个新方法,如下:

    isUserAdvanced() {
        return _.findIndexOf( $scope.thisUser, {RoleName: "advanced user", Select: true}) != -1;
  }

正如 @skyboyer 提到的,最好在没有 lodash 依赖的情况下做到这一点:

isUserAdvanced() {
            return $scope.thisUser.some(role => role.Select && role.RoleName == "advanced user");
      }

关于javascript - 如果我无权访问,则显示/隐藏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47187128/

相关文章:

javascript - 如何在同一个服务中模拟一个方法

javascript - Karma 未按预期运行 Angular 测试

javascript - 像javascript中的对象一样在数组上应用forEach方法

javascript - 根据 Angularjs 中选定的值显示值

javascript - 如何获取元素与顶部的距离?

javascript - Jquery 在 html() 上添加换行符

javascript - ionic 导航后退按钮未显示

javascript - 如何将单选按钮组重置为特定值

javascript - jQuery:使用 off() 禁用 onclick 事件不起作用

javascript - 向 Chrome 扩展程序添加新范围