因为所有文档已经从数据库中加载,如何检查是否必须停止调用loadMore()函数?

在下面的示例中,我使用的是Ionic,但是AngularJS应用中的ng-infinite-scroll也是如此。

这是我的实际代码:

HTML:

  ...

  <ion-infinite-scroll
    ng-if="!noMoreItemsToLoad"
    on-infinite="loadMore()"
    distance="5%">
  </ion-infinite-scroll>

</ion-content>


JS控制器:

$scope.loadMore = function(){

  console.log('Loading more docs...');

  Items.loadMore();  // calling the .next() method inside the Items service

  if( !Items.hasNext()) { $scope.noMoreItemsToLoad = true; }

  $scope.$broadcast('scroll.infiniteScrollComplete');

}


JS项目工厂:

.factory('Items', function (FIREBASE_URL, $firebaseArray,  $firebaseObject) {

  var itemsRef = new Firebase(FIREBASE_URL + 'items/');
  var scrollRef = new Firebase.util.Scroll(itemsRef, 'name');

  var self = {
     getAllItems : function(){ ... },

     loadMore: function(){
       scrollRef.scroll.next(4);
     },

     hasNext: function(){
       if(scrollRef.scroll.hasNext()) { return true; }
       else { return false; }
     }
  }

  return self;

}

最佳答案

在超时中执行scroll.next,例如:

 loadMore: function(){
   $timeout(function() {
     scrollRef.scroll.next(4);
   });
 },

关于javascript - 如何检查所有文档是否都使用Firebase.util分页加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35270674/

10-09 20:04