Как проверить, нужно ли мне прекратить вызов функции loadMore()
, потому что все документы уже загружены из базы данных?Как проверить, загружены ли все документы с помощью Firebase.util pagination
В приведенном ниже примере я использую Ionic, но это то же самое и с ng-infin-scroll в приложениях AngularJS.
Это мой фактический код:
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;
}
См https://github.com/firebase/firebase-util/tree/master/src/Paginate#refscrollhasnext –
Уже пытались использовать the'ref .scroll.hasNext() '. Проблема в том, что он всегда возвращает false, поэтому я не знаю, какое свойство я должен использовать. – fbid
Вы должны использовать 'hasNext()', а фрагмент, который вы разместили, - нет. Если 'hasNext()' всегда возвращает false, либо есть ошибка, либо вы используете это неправильно. –