sorting values of a hash object in ngRepeat - angularJS

angularjs, hash, object

Solution

If you check the documentation it says that the expression in orderBy can be a function, a string or an Array. An therefore you need dateReleased to be a string: 'dateReleased'

Also you need your phones Object be an actual Array.

Try:

$scope.phones = [{
        "name":"Phone Name1",
        "dateReleased":"2012-1-09 15:48:24"
    },{
        "name": "Phone Name2",
        "dateReleased":"2012-3-12 15:32:11"
    },{
        "name": "Phone Name3",
        "dateReleased":"2012-2-10 13:53:32"
    }];

<li ng-repeat="phone in phones | orderBy:'dateReleased':true">
    <p>{{phone.name}}</p>
    <p>{{phone.dateReleased}}</p>
</li>

Problem

I have an object like this: ``` $scope.phones = new Object(); $scope.phones['id1'] = { "name":"Phone Name1", "dateReleased":"2012-1-09 15:48:24" }; $scope.phones['id2'] = { "name": "Phone Name2", "dateReleased":"2012-3-12 15:32:11" }; $scope.phones['id3'] = { "name": "Phone Name3", "dateReleased":"2012-2-10 13:53:32" }; ``` I'm displaying this using ngRepeat. I'm not able to order by `dateReleased`. Also, ordering in reverse isn't working. My ngRepeat looks this: ``` <li ng-repeat="phone in phones | orderBy:dateReleased:true"> <p>{{phone.name}}</p> <p>{{phone.dateReleased}}</p> </li> ```

Original source