orderby date angularjs of-repeat
orderby date angularjs ng-repeat
我正在尝试通过 'date' 与 ng-repeat 一起订购,但我的日期格式是 "date":"Sun, 01 Sep 2016 08:47:53 -0400"。我尝试使用 momentjs,但我得到了一个错误的列表。
请问我如何按日期订购
http://codepen.io/netwrkx/pen/WGbwgY?editors=101
<tr ng-repeat="expense in expenses | orderBy:'date'">
<td>{{expense.name}}</td>
<td>{{expense.amount}}</td>
<td>{{expense.date | amTimeAgo}} </td>
</tr>
<tr ng-repeat="expense in expenses | orderBy:compareDateFunc">
和
$scope.compareDateFunc = function(dt) {
return new Date(dt.date);
}
您可以创建自定义过滤器 dateOrder
,为内置过滤器提供输入。
JS :
.filter('dateOrder',function(){
return function(data){
angular.forEach(data,function(val,key){
val.dateTimestamp = new Date(val.date).getTime()
});
return data;
}
});
将您的 html 定义为:
<tr ng-repeat="expense in expenses | dateOrder |orderBy :'dateTimestamp'">
这是工作codepen
我正在尝试通过 'date' 与 ng-repeat 一起订购,但我的日期格式是 "date":"Sun, 01 Sep 2016 08:47:53 -0400"。我尝试使用 momentjs,但我得到了一个错误的列表。
请问我如何按日期订购
http://codepen.io/netwrkx/pen/WGbwgY?editors=101
<tr ng-repeat="expense in expenses | orderBy:'date'">
<td>{{expense.name}}</td>
<td>{{expense.amount}}</td>
<td>{{expense.date | amTimeAgo}} </td>
</tr>
<tr ng-repeat="expense in expenses | orderBy:compareDateFunc">
和
$scope.compareDateFunc = function(dt) {
return new Date(dt.date);
}
您可以创建自定义过滤器 dateOrder
,为内置过滤器提供输入。
JS :
.filter('dateOrder',function(){
return function(data){
angular.forEach(data,function(val,key){
val.dateTimestamp = new Date(val.date).getTime()
});
return data;
}
});
将您的 html 定义为:
<tr ng-repeat="expense in expenses | dateOrder |orderBy :'dateTimestamp'">
这是工作codepen