在数据表AngularJS中有条件地隐藏/显示列?

时间:2017-04-03 12:42:31

标签: javascript angularjs angular-datatables

我使用数据表angularjs显示用户列表。我想隐藏显示列使用conditionally.suppose角色是onther然后最后一列不显示,角色是管理员然后显示最后一列。我可以做到这一点我不知道任何人知道如何做到这一点请让我知道。

这是我的controller.js:

app.controller("userscontroller", ["$scope", "$http", "DTOptionsBuilder", "DTColumnBuilder", "userservice","$compile"
 function ($scope, $http, DTOptionsBuilder, DTColumnBuilder,userservic,$compile) {       
$scope.dtColumns = [            
DTColumnBuilder.newColumn("fullName", "Full Name").withOption('name', 'firstname'),
DTColumnBuilder.newColumn("username", "Name").withOption('name',     'username'),
DTColumnBuilder.newColumn("email", "Email").withOption('name', 'email'), 
DTColumnBuilder.newColumn(null).withTitle('Action').notSortable()
    .renderWith(function (data, type, full, meta) {            
            return '<button class="btn btn-primary" ng-click="delete(' + data.id + ');"><i class="fa fa-eye"></i>' + '</button>';                    
    })          
]

$scope.dtOptions = userservice.GetAllUser(DTOptionsBuilder)
.withOption('processing', true)
.withOption('serverSide', true)
.withPaginationType('full_numbers')
.withDisplayLength(50)
.withOption('aaSorting', [3, 'desc'])

 function createdRow(row, data, dataIndex) {
$compile(angular.element(row).contents())($scope);
 } }]);

这里我想if(IsAdmin)然后显示删除列其他明智隐藏此列怎么办?

2 个答案:

答案 0 :(得分:3)

您可以使用:

if(user.configName == 'Admin') 
{
    vm.dtColumnDefs = [
            DTColumnDefBuilder.newColumnDef(0),
            DTColumnDefBuilder.newColumnDef(1),
            DTColumnDefBuilder.newColumnDef(2).notSortable()
        ];
}
else {
vm.dtColumnDefs = [
            DTColumnDefBuilder.newColumnDef(0),
            DTColumnDefBuilder.newColumnDef(1).notVisible(),
            DTColumnDefBuilder.newColumnDef(2).notSortable()
        ];
}

在上面的代码中,notVisible()方法用于隐藏表中的第二列。使用此功能,您可以使列可见并隐藏用于特定用户角色。

答案 1 :(得分:0)

您可以尝试以下操作:

if(user.configName == 'Admin'){
               return '<button class="btn btn-primary" ng-click="delete(' + data.id + ');"><i class="fa fa-eye"></i>' + '</button>';
            }