ng-grid是否按行支持单元过滤器(角度过滤器)

时间:2014-06-07 20:45:56

标签: javascript angularjs angular-ui ng-grid

ng-gird colDefs(列定义)允许您为每列定义过滤器(角度过滤器)。

在我的用例中,我需要每行使用过滤器。这意味着,某些行中的数据将具有数字格式,而其他行可能具有百分比。

ng-grid是否支持每行过滤?请注意,这不是过滤行,而是将相同的显示格式应用于行的单元格。

2 个答案:

答案 0 :(得分:11)

现在(截至2014年)可能使用当前的ngGrid:

columnDefs: [
  {
    field: 'name',
    cellFilter: 'lowercase'
  }
]

甚至使用过滤器参数:

columnDefs: [
  {
    field: 'name',
    cellFilter: 'currency:"GPB"'
  }
]

答案 1 :(得分:2)

您可以使用cellTemplate和过滤器来完成此操作。

具有自定义cellTemplate的gridOptions:

    var statusTpl = '<div  style="padding-top: 10px;padding-left: 5px" ng-bind="row.getProperty(col.field) | percentage:200"></div>';
    $scope.gridOptions = {
    data: 'myData',
    columnDefs: [{
      field: 'name'
    }, {
      field: 'status',
      cellTemplate: statusTpl
    }]
    };

一个非常简单的过滤器(在本例中,它计算100%的覆盖百分比= 200):

    app.filter('percentage', function() {
      return function(input, max) {
        if (isNaN(input)) {
          return input;
        }
        return Math.floor((input * 100) / max) + '%';
      };
    });

您可以在自定义cellTemplate中的过滤器的第二个参数中设置100%值。

如果您需要更精确的可调小数,只需环顾四周就可以找到一些。

卫生署!差点忘了Plunker to this