如何在 angular UI 网格中的 columnDefs 属性 中设置过滤器

How to set filter in columnDefs property in angular UI grid

我在应用程序中有 angular ui 网格,如果任何字段值为 null 或为空,我希望隐藏一个字段。

   $scope.gridOptions = {
        paginationPageSize: 10,
        columnDefs: [
          { displayName: 'First Name', field: 'firstName', headerCellClass: "GridHeader" },
          { displayName: 'Last Name', field: 'lastName', headerCellClass: "GridHeader" },
          { displayName: 'Active Status', field: 'activeStatus', headerCellClass: "GridHeader" },
          { displayName: 'RoleName', field: 'roleName', headerCellClass: "GridHeader" },
        ]
    };

如何在字段中放置过滤器。假设如果上面代码中我的 rolename 是 empty/null 然后隐藏网格中的角色字段。

非常感谢任何帮助和建议。提前致谢:)

是的,我修好了。

var result = [];
var gridValue= [
      { displayName: 'First Name', field: 'firstName', headerCellClass: "GridHeader" },
      { displayName: 'Last Name', field: 'lastName', headerCellClass: "GridHeader" },
      { displayName: 'Active Status', field: 'activeStatus', headerCellClass: "GridHeader" },
      { displayName: 'RoleName', field: 'roleName', headerCellClass: "GridHeader" },
    ]; 

在响应中我检查了空值。

if(response.data != null)
{
    if (response.data.roleName === null) {
        result = gridValue.slice(0, 3);
    }
    else {
        result = gridValue;
    }
    $scope.gridOptions = {
        paginationPageSize: 10,
        columnDefs: result,
     };
}

这对我有帮助:)

我建议只使用

that.grid.columnDefs[3].visible = false;

我没有测试过,但它应该比从您的定义中删除列并将定义重新应用到网格更有效。

我认为您也可以将可见性设置为检查数据的函数。

that.grid.columnDefs[3].visible = function () { 
    // replace with code checking grid.data
    return false;
}