我正在使用ui-grid。我已经实现了一些逻辑来停止$ http调用,如下所示。但是当它达到最后的结果时,滚动跳转到最后结果之前很少的行。因此,用户无法随时查看最后的结果。如果用户再次滚动,那么一段时间后它再次跳转到最后一次结果之前的几行。
我使用了以下逻辑。
$scope.loadMoreData = function() {
var promise = $q.defer();
if($scope.lastPage < $scope.maxPage){
$timeout(function () {
var arrayObj = [];
for(var i=0; i<$scope.itemsPerPage; i++){
arrayObj.push({id:Math.random()*100, name:'Name '+Math.random()});
}
$scope.lastPage++;
$scope.data = $scope.data.concat(arrayObj);
$scope.gridApi.infiniteScroll.dataLoaded();
console.log($scope.data);
promise.resolve();
}, Math.random()*1000);
}
else {
$scope.gridApi.infiniteScroll.dataLoaded();
promise.resolve();
}
return promise.promise;
}
这是plunker,我使用$ timeout来替换$ http调用以便轻松复制。
这是我在实现无限滚动时遇到的另一个question。
注意:我已经搜索了很多内容。
答案 0 :(得分:2)
几个月前,当我开始使用ui-grid时,无限卷轴很新实现,我遇到了同样的问题。但是这些人正在努力改进事物,当使用最新版本的ui-grid时,无限卷轴就像一个魅力!
我updated your Plunkr使用最新的ui-grid版本,一切正常。
<script src="http://ui-grid.info/release/ui-grid.js"></script>