Mark
Mark

Reputation: 1872

Angular sorting by descending

I thought that is using the orderby filter in angular, we could simply reverse by adding a "-" before that which you want to order by. So in my case in the code below, why would this not work? I have tried with the "-" in and out of the single quotes.

Code:

<tr class="alertText" ng-repeat="swipe in ppt.Swipes | orderBy:'-swipe.date' ">
    <td>{{swipe.date|date : 'MM/dd/yyyy'}}</td>
    <td>{{swipe.descr}}</td>
    <td>{{swipe.amount | currency}}</td>
    <td>{{swipe.dueDate|date : 'MM/dd/yyyy'}}</td>
    <td>{{swipe.status}}</td>
    <td class="clearIcon"><span ng-click="editSwipe()"><img src="ppt/assets/toolIcons/clearswipe-small.svg"></span></td>
</tr>

Upvotes: 1

Views: 95

Answers (4)

Slava N.
Slava N.

Reputation: 596

And don't forget than you can use second parameter of orderBy filter to set sort order:

<tr class="alertText" ng-repeat="swipe in ppt.Swipes | orderBy:'date':1">

Upvotes: 1

Hadi
Hadi

Reputation: 17289

function Main($scope) {
    $scope.items = [
      {"name":"ali",date: new Date('12/23/2013')}
      ,{"name":"Reza",date: new Date('12/23/2015')},
      {"name":"Amir",date: new Date('12/23/2011')}
    ];
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
    <div ng-controller="Main">
      <div ng-repeat="item in items | orderBy:'-date'">{{item.name}}: {{item.date | date}}</div>
    </div>
</div>

Upvotes: 2

Sajeetharan
Sajeetharan

Reputation: 222582

You should have the property as '-date' in the ng-repeat in the filter ,

Code:

<div ng-repeat="card in myCards | orderBy:'-date'">
        <businesscard>{{card.firstName}} {{card.date | date}}</businesscard>
    </div>

Here is the working jsfiddle

Upvotes: 2

Pavan Teja
Pavan Teja

Reputation: 3202

orderBy:'-date' is enought for ordering

Upvotes: 2

Related Questions