【发布时间】:2014-08-21 22:09:04
【问题描述】:
ng-girdcolDefs(列定义)允许您为每一列定义一个过滤器(角度过滤器)。
在我的用例中,我需要每行使用过滤器。这意味着,某些行中的数据将具有数字格式,而其他行可能具有百分比。
ng-grid 是否支持按行过滤?请注意,这不是过滤行,而是对行的单元格应用相同的显示格式。
【问题讨论】:
标签: javascript angularjs angular-ui ng-grid
ng-girdcolDefs(列定义)允许您为每一列定义一个过滤器(角度过滤器)。
在我的用例中,我需要每行使用过滤器。这意味着,某些行中的数据将具有数字格式,而其他行可能具有百分比。
ng-grid 是否支持按行过滤?请注意,这不是过滤行,而是对行的单元格应用相同的显示格式。
【问题讨论】:
标签: javascript angularjs angular-ui ng-grid
这现在(截至 2014 年)在当前的 ngGrid 中可以原生实现:
columnDefs: [
{
field: 'name',
cellFilter: 'lowercase'
}
]
甚至使用过滤器参数:
columnDefs: [
{
field: 'name',
cellFilter: 'currency:"GPB"'
}
]
【讨论】:
您可以使用 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
【讨论】: