angularjs - 如何让 ngInfiniteScroll 通过createdAt 降序检索数据

标签 angularjs nginfinitescroll

我使用 firebase 保存具有以下数据的帖子:

createdAt: "Sun Apr 03 2016 18:32:46 GMT-0300 (BRT)"

我想要实现的是首先获取最新的帖子,然后在用户向下滚动时加载较旧的帖子。

通过使用 ngInfiniteScroll 检索帖子,我可以使用 <div ng-repeat="post in posts | orderBy:'-createdAt'"> 订购 desc但 ngInfiniteScroll 始终首先返回旧帖子。我正在订购,但我订购的是较旧的。

我已经尝试在 ngInfiniteScroll 中使用相同的逻辑( "-createdAt" ),但它没有效果。

<小时/>

我的js差不多是这样的:

  var baseRef = new Firebase(FBURL).child("posts");
  var scrollRef = new Firebase.util.Scroll(baseRef, "createdAt");
  $scope.posts = $firebaseArray(scrollRef);
  $scope.posts.scroll = scrollRef.scroll;

安全和规则:

"posts": {
          ".read": true,
          ".indexOn": "createdAt",
          "$post": {
            ".read": true,
            ".write": true,
            "$other": {
               ".validate": true
            }
         }
      }

最佳答案

看起来您找到了解决方案,但您使用 orderBy 的管道处于正确的轨道上,但只需尝试稍微调整一下即可。尝试使用 orderBy:'+':true",其中 orderBy 表示您想按某些内容排序,而 +:true 表示顺序它的任何新内容都在顶部,其中 -:true 表示在底部订购新内容。但是您可以查看它的 Angular 文档 here 。所以如果在 HTML 端处理它它看起来像这样 ng-repeat="post in posts| orderBy:'+':true" 或:

    <div ng-repeat="post in posts| orderBy:'+':true">
           [....post info here]
      </div>

但是尝试一下,希望它有帮助。

关于angularjs - 如何让 ngInfiniteScroll 通过createdAt 降序检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391667/

相关文章:

angularjs - 引用angularjs、firebase、angularfire中push生成的唯一id的名称

css - 使用 ngif 和 css 动画进行 Angular 滑入和滑出

javascript - ng 重复 json 解析显示空字符串

javascript - 如何使用转换 :translateY() "AngularJS"? 创建垂直滚动条

meteor - Angular2 Meteor,实现无限滚动的问题(滚动重置到顶部)

javascript - ionic + AngularJS : ng-repeat filter not working on grid layout but works in list

jquery - ng 无限滚动中的 div 标签高度导致问题

javascript - 无限滚动导致快速滚动时跳转到屏幕顶部

javascript - 无限滚动重复行

javascript - AngularJS Angular.js :12520 SyntaxError: Unexpected token ILLEGAL affiliate window