AngularJS 按日期排序无效
AngularJS order by date is not working
我正在尝试按 json 对象中给定的日期订购我的 json,但它只检查第一个数字,例如:19-08-2017 它只检查 19 和忽略 -08-2017.
这是我的 json:
$scope.tasks = [{
"id" : 1,
"taskDescription" : "Afspraak | Overleg planning/projecten met RT",
"taskUser" : "Kenneth Clark",
"taskDate" : "02-07-2017",
"taskStart" : "14:00",
"taskStop" : "15:00",
"taskPlannedHours" : "01:00",
"taskUsedHours" : "01:00",
"taskChecked" : true
},{
"id" : 2,
"taskDescription" : "Al iets gehoord van de opkoper van de VW up!",
"taskUser" : "Richard Todd",
"taskDate" : "03-07-2017",
"taskStart" : "14:00",
"taskStop" : "15:00",
"taskPlannedHours" : "01:00",
"taskUsedHours" : "01:50",
"taskChecked" : true
},{
"id" : 3,
"taskDescription" : "RS6 's Ochtends naar circuit",
"taskUser" : "Peter Mol",
"taskDate" : "19-08-2017",
"taskStart" : "14:00",
"taskStop" : "15:00",
"taskPlannedHours" : "01:00",
"taskUsedHours" : "00:00",
"taskChecked" : false
},{
"id" : 4,
"taskDescription" : "Afspraak | doe ff afspraakje maken",
"taskUser" : "Robert Vliek",
"taskDate" : "14-09-2017",
"taskStart" : "10:00",
"taskStop" : "12:00",
"taskPlannedHours" : "02:00",
"taskUsedHours" : "00:00",
"taskChecked" : false
}];
这是我的代码:
<div class="tableRow taskItem" ng-repeat="task in tasks | orderBy:'taskDate':true">
这是输出:
解决方案 1:
如果您可以更改数据的日期格式,则可以使用 yyyy-mm-dd
。
解决方案 2:
(如果你不能改变日期格式),你可以这样做:
<div class="tableRow taskItem" ng-repeat="task in tasks | orderBy: myCustomDateField: true">
在控制器中:
$scope.myCustomDateField = function(item) {
var parts = item.taskDate.split('-');
var number = parseInt(parts[2] + parts[1] + parts[0]);
return number;
};
我正在尝试按 json 对象中给定的日期订购我的 json,但它只检查第一个数字,例如:19-08-2017 它只检查 19 和忽略 -08-2017.
这是我的 json:
$scope.tasks = [{
"id" : 1,
"taskDescription" : "Afspraak | Overleg planning/projecten met RT",
"taskUser" : "Kenneth Clark",
"taskDate" : "02-07-2017",
"taskStart" : "14:00",
"taskStop" : "15:00",
"taskPlannedHours" : "01:00",
"taskUsedHours" : "01:00",
"taskChecked" : true
},{
"id" : 2,
"taskDescription" : "Al iets gehoord van de opkoper van de VW up!",
"taskUser" : "Richard Todd",
"taskDate" : "03-07-2017",
"taskStart" : "14:00",
"taskStop" : "15:00",
"taskPlannedHours" : "01:00",
"taskUsedHours" : "01:50",
"taskChecked" : true
},{
"id" : 3,
"taskDescription" : "RS6 's Ochtends naar circuit",
"taskUser" : "Peter Mol",
"taskDate" : "19-08-2017",
"taskStart" : "14:00",
"taskStop" : "15:00",
"taskPlannedHours" : "01:00",
"taskUsedHours" : "00:00",
"taskChecked" : false
},{
"id" : 4,
"taskDescription" : "Afspraak | doe ff afspraakje maken",
"taskUser" : "Robert Vliek",
"taskDate" : "14-09-2017",
"taskStart" : "10:00",
"taskStop" : "12:00",
"taskPlannedHours" : "02:00",
"taskUsedHours" : "00:00",
"taskChecked" : false
}];
这是我的代码:
<div class="tableRow taskItem" ng-repeat="task in tasks | orderBy:'taskDate':true">
这是输出:
解决方案 1:
如果您可以更改数据的日期格式,则可以使用 yyyy-mm-dd
。
解决方案 2:
(如果你不能改变日期格式),你可以这样做:
<div class="tableRow taskItem" ng-repeat="task in tasks | orderBy: myCustomDateField: true">
在控制器中:
$scope.myCustomDateField = function(item) {
var parts = item.taskDate.split('-');
var number = parseInt(parts[2] + parts[1] + parts[0]);
return number;
};