2016-06-20 48 views
0

爲什麼下面的代碼不按日期排序?因此ng-repeat按日期排序不起作用

http://jsfiddle.net/eliaweiss/1cs3xbtd/1/

HTML

<div ng-app> 
    <script type="text/javascript" src="http://code.angularjs.org/1.0.1/angular-1.0.1.js"></script> 
    <div ng:controller="Main"> 
     <div ng:repeat="(id, i) in items | orderBy:'date'">{{id}}: {{i.date | date}}</div> 
    </div> 
</div> 

JS

function Main($scope) { 
    $scope.items = { 
     0: {date: new Date('12/23/2013')}, 
     1: {date: new Date('12/23/2011')}, 
     2: {date: new Date('12/23/2010')}, 
     3: {date: new Date('12/23/2015')} 
    }; 
} 
+0

[日期在Angular.js沒有適當的排序(HTTP的可能重複://計算器。 com/questions/21023052/dates-not-sorted-in-angular-js) –

+0

我很確定我遇到類似這樣的事情,發現順序不能和對象一起工作。 – Tim

回答

3

問題很簡單.... JavaScript對象是沒有順序和orderBy僅適用於陣列

變化模型結構到arr唉

0

什麼charlietfl說:

JS:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
    $scope.items = [ 
    { 
     id: 0, 
     date: new Date('12/23/2013') 
    }, 
    { 
     id: 1, 
     date: new Date('12/23/2011') 
    }, 
    { 
     id: 2, 
     date: new Date('12/23/2010') 
    }, 
    { 
     id: 3, 
     date: new Date('12/23/2015') 
    }]; 
}) 

HTML:

<div ng-app="myApp" ng-controller="myCtrl"> 
    <div ng:repeat="i in items | orderBy:'date'">{{i.id}}: {{i.date | date}}</div> 
</div>