【发布时间】:2016-02-08 13:19:20
【问题描述】:
我如何检查是否必须停止调用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;
}
【问题讨论】:
-
已经尝试使用
ref.scroll.hasNext()方法。问题是它总是返回 false 所以我不知道我应该使用什么样的属性。 -
您应该使用
hasNext()而您发布的 sn-p 没有。如果hasNext()总是返回false,要么是有bug,要么是你用错了。 -
@FrankvanPuffelen 抱歉,现在我正在编辑我的原始帖子以包含它。
标签: javascript angularjs ionic-framework firebase firebase-util