1

ng-repeat와 함께 'date'를 주문하려고하지만 내 날짜 형식은 'date, "Sun, 2010 Sep 2016 08:47:53 -0400"입니다. 나는 momentjs를 사용하여 시도했지만 잘못된 목록이 나타납니다. 난을 어떻게orderby date angularjs ng-repeat

PLS는, 당신은 내장 된 필터에 입력을 제공하여 사용자 정의 필터 dateOrder를 만들 수 있습니다 날짜를

http://codepen.io/netwrkx/pen/WGbwgY?editors=101

답변

1
<tr ng-repeat="expense in expenses | orderBy:compareDateFunc"> 

<tr ng-repeat="expense in expenses | orderBy:'date'"> 
    <td>{{expense.name}}</td> 
    <td>{{expense.amount}}</td> 
    <td>{{expense.date | amTimeAgo}} </td> 
</tr> 

$scope.compareDateFunc = function(dt) { 
    return new Date(dt.date); 
} 
+0

입니다! 하지만 어떻게하면 상승 또는 하강 "-compareDateFunc"가 작동하지 않는 것 같아요. – netx

+0

'return - 새 날짜 (dt.date); '는 주문을 변경합니다. –

2

을 ORDERBY.

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

+0

http://codepen.io/anon/pen/VKYjLA – Sajeetharan

+0

일 했어, 고마워. 이 코드의 성능 측면에 대해 우려해야합니다. 100 json 객체를로드하는 것을 상상해보십시오. – netx

+0

컨트롤러에서'date'에 타임 스탬프 데이터를 준비 할 수 있습니다. ' –