【发布时间】:2015-01-13 21:22:49
【问题描述】:
我想做什么:
获取一个对象数组,每个对象都带有object.timestamp(以毫秒为单位),并将它们从最新到最旧排序。
问题:
Angular 的 orderBy 似乎没有按正确的顺序排列。以下时间戳按以下顺序排列:
- 1416187808218 -
// Nov/16/2014 5:30:PM - 1416187881192 -
// Nov/16/2014 5:31:PM - 1416189118263 -
// Nov/16/2014 5:51:PM - 1416189138827 -
// Nov/16/2014 5:52:PM - 1416130064119 -
// Nov/16/2014 1:27:AM
正确/期望的顺序显然是:
- 1416189138827 -
// Nov/16/2014 5:52:PM - 1416189118263 -
// Nov/16/2014 5:51:PM - 1416187881192 -
// Nov/16/2014 5:31:PM - 1416187808218 -
// Nov/16/2014 5:30:PM - 1416130064119 -
// Nov/16/2014 1:27:AM
所以它应该是4, 3, 2, 1, 5,显然,1, 2, 3, 4, 5
相关代码:
html:
<div class="cardWrapper" ng-repeat="card in cards | orderBy:'timestamp'">
various child elements
</div>
javascript:
scope.cards = homeData.get().cards; // returns an array of objects
// ^this^ becomes something similar to
scope.cards = [
{text: 'some text...', timestamp: 1416189138827, other: 'data'},
{text: 'some text...', timestamp: 1416187881192, other: 'data'}
//etc...
];
【问题讨论】:
-
不知道你在做什么,但这很好用:jsfiddle.net/k2h80393
标签: javascript arrays angularjs sorting angularjs-orderby