私がしたいこと:
オブジェクトの配列を取得し、各オブジェクト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...
];