Angular ui-根据日期为空或不为空的网格过滤
Angular ui-grid filtering based on date is null or not null
在我的应用程序中,我使用 Angular ui-grid 以网格格式显示数据集。我想根据名为 actionDate
的日期字段过滤这些数据。我想过滤 actionDate
为 null
或 not null
的数据。我正在使用一个简单的下拉菜单 select 这个 .
但是当这个 actionDate
字段不为 null 时,过滤不起作用。我认为这不起作用的原因是 actionDate
字段具有不同的值,而 ui-grid 过滤器无法理解这一点。
我在下面的plunker中重现了这个问题。
http://plnkr.co/edit/8rIJeA92hDYQ9vHDUC1C?p=preview
如果有人能指出我正确的方向,我将不胜感激。
我在 this fork of your plunker 中解决了你的问题。
更新:好吧,我采用的解决方案是在 colDefs
:
的末尾添加一个名为 dateActionedKey
的隐藏列
{
field: 'dateActionedKey',
filter: {
term: $scope.term
},
visible: false
}
问题是您按事后分配的 属性 过滤列 - 如果没有 actionDate
,则值为“1”,否则值为 actionDate
-- 但您的过滤器选择器按 id
过滤,查找值“1”或“2”。
因此您需要更改 forEach
函数:
_.forEach(data, function (value) {
value.dateActioned = value.dateActioned===null ? '1' : value.dateActioned;
});
至:
_.forEach(data, function (value) {
value.dateActionedKey = value.dateActioned===null ? '1' : '2';
});
通过添加额外的 属性 dateActionedKey
,您只需将二进制 1 或 2 值分配给它,您的显示不会有任何变化。由于这个不可见的列现在是七个列中的最后一个,您需要将过滤器术语分配更新为:
$scope.gridApi.grid.columns[6].filter.term = $scope.term;
希望对您有所帮助。
在我的应用程序中,我使用 Angular ui-grid 以网格格式显示数据集。我想根据名为 actionDate
的日期字段过滤这些数据。我想过滤 actionDate
为 null
或 not null
的数据。我正在使用一个简单的下拉菜单 select 这个 .
但是当这个 actionDate
字段不为 null 时,过滤不起作用。我认为这不起作用的原因是 actionDate
字段具有不同的值,而 ui-grid 过滤器无法理解这一点。
我在下面的plunker中重现了这个问题。 http://plnkr.co/edit/8rIJeA92hDYQ9vHDUC1C?p=preview
如果有人能指出我正确的方向,我将不胜感激。
我在 this fork of your plunker 中解决了你的问题。
更新:好吧,我采用的解决方案是在 colDefs
:
dateActionedKey
的隐藏列
{
field: 'dateActionedKey',
filter: {
term: $scope.term
},
visible: false
}
问题是您按事后分配的 属性 过滤列 - 如果没有 actionDate
,则值为“1”,否则值为 actionDate
-- 但您的过滤器选择器按 id
过滤,查找值“1”或“2”。
因此您需要更改 forEach
函数:
_.forEach(data, function (value) {
value.dateActioned = value.dateActioned===null ? '1' : value.dateActioned;
});
至:
_.forEach(data, function (value) {
value.dateActionedKey = value.dateActioned===null ? '1' : '2';
});
通过添加额外的 属性 dateActionedKey
,您只需将二进制 1 或 2 值分配给它,您的显示不会有任何变化。由于这个不可见的列现在是七个列中的最后一个,您需要将过滤器术语分配更新为:
$scope.gridApi.grid.columns[6].filter.term = $scope.term;
希望对您有所帮助。