AngularJs中按日期降序排序

Upv*_*ote 134 angularjs angularjs-filter

<div class="recent" ng-repeat="reader in
    (filteredItems = (book.reader | orderBy: 'created_at' | limitTo: 1))">
</div>
Run Code Online (Sandbox Code Playgroud)

所以这本书来自rest api,它附有许多读者.我想得到'最近'的读者.

created_at字段具有将用户标识为最近的值.但上面的代码给了我最老的读者.所以订单需要反转?有没有办法按降序排序?

CD.*_*D.. 213

根据文档,您可以使用该reverse参数.

filter:orderBy(array, expression[, reverse]);
Run Code Online (Sandbox Code Playgroud)

将您的过滤器更改为:

orderBy: 'created_at':true
Run Code Online (Sandbox Code Playgroud)

  • 注意它的`:`不是逗号.(对于其他非观察者) (21认同)
  • 这些仅适用于在单个页面中具有完整表格数据的页面,但不适用于分页。 (2认同)

Lud*_*son 176

您可以在参数前面orderBy加上' - '来降序而不是升序.我会这样写:

<div class="recent" 
   ng-repeat="reader in book.reader | orderBy: '-created_at' | limitTo: 1">
</div>
Run Code Online (Sandbox Code Playgroud)

这也在过滤器orderBy的文档中说明.

  • 谢谢,这是一个快速简便的逆转订单的方法. (6认同)

igo*_*uad 41

也许这对某人有用:

在我的例子中,我得到了一个对象数组,每个对象都包含一个由Mongoose设置的日期.

我用了:

ng-repeat="comment in post.comments | orderBy : sortComment : true"
Run Code Online (Sandbox Code Playgroud)

并定义了功能:

$scope.sortComment = function(comment) {
    var date = new Date(comment.created);
    return date;
};
Run Code Online (Sandbox Code Playgroud)

这对我有用.


Nie*_*Bom 17

一个代码示例:

<div ng-app>
    <div ng-controller="FooController">
        <ul ng-repeat="item in items | orderBy:'num':true">
            <li>{{item.num}} :: {{item.desc}}</li>
        </ul>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

和JavaScript:

function FooController($scope) {
    $scope.items = [
        {desc: 'a', num: 1},
        {desc: 'b', num: 2},
        {desc: 'c', num: 3},
    ];
}
Run Code Online (Sandbox Code Playgroud)

会给你:

3 :: c
2 :: b
1 :: a
Run Code Online (Sandbox Code Playgroud)

关于JSFiddle:http://jsfiddle.net/agjqN/


小智 7

降序按日期排序

它将有助于按日期降序过滤记录.

$scope.logData = [
            { event: 'Payment', created_at: '04/05/17 6:47 PM PST' },
            { event: 'Payment', created_at: '04/06/17 12:47 AM PST' },
            { event: 'Payment', created_at: '04/05/17 1:50 PM PST' }
        ]; 

<div ng-repeat="logs in logData | orderBy: '-created_at'" >
      {{logs.event}}
 </div>
Run Code Online (Sandbox Code Playgroud)