我指的是在ng-grid上提出的问题,但无法在此处找到满足我要求的解决方案。 我有ng-grid,其列名称称为Status。它显示来自JSON中2个不同参数的值,如下所示。
var mydata1 = [{"Id":01,"CustNo":"100001","CustName":"Alexander","LastSeen":null,"MultipleDatasets":false},
{"Id":02,"CustNo":"100002","CustName":"Mike","LastSeen":"2017-10-15T00:00:00","MultipleDatasets":false},
{"Id":03,"CustNo":"100003","CustName":"Anne","LastSeen":null,"MultipleDatasets":true}]
状态显示
在ASC的“状态”列中:我得到YellowFlag,No Flag和Red Flag 在DESC的“状态”列中:我没有标志,YellowFlag和红色标志。
我想拥有显示
的自定义排序功能在ASC的“状态”列上:RedFlag,YellowFlag,无标志 在DESC的“状态”列中:“无标志”,“黄旗”和“红色标志”。
我应该如何为此编写一个排序函数?
var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope) {
$scope.data = [{"Id":01,"CustNo":"100001","CustName":"Alexander","LastSeen":null,"MultipleDatasets":false},
{"Id":02,"CustNo":"100002","CustName":"Mike","LastSeen":"2017-10-15T00:00:00","MultipleDatasets":false},
{"Id":03,"CustNo":"100003","CustName":"Anne","LastSeen":null,"MultipleDatasets":true}];
$scope.gridOptions = {
data: 'data',
columnDefs: [
{
field: 'DataLastSeen', displayName: 'Status', width: 25, enableCellEdit: false, cellTemplate: $scope.cellWarning,
sortFn: function (DataLastSeen) {
console.log(row.entity.DataLastSeen);
}
},
{ field: 'CustNo', displayName: 'Customer Number'},
{ field: 'CustName', displayName: 'Customer Name'}
]
};
$scope.cellWarning = "<div>" +
"<div ng-if=\"row.entity.MultipleDatasets\"><md-tooltip>Multiple datasets have been uploaded from this customer today.</md-tooltip><md-icon style='color: #FF2F00'>warning</md-icon></div>" +
"<div ng-if=\"showWarning(row.entity.DataLastSeen)\"><md-tooltip>No data in the past day</md-tooltip><md-icon style='color: #FFCC00'>warning</md-icon></div>" +
"</div>";
$scope.showWarning = function (date) {
if (date === undefined) {
return ;
}
var dataLastSeen = new Date(date);
var oneDayAgo = new Date();
oneDayAgo.setDate(oneDayAgo.getDate() - 1);
return dataLastSeen < oneDayAgo;
}
});