如何在内容加载完成时停止无限滚动ui-grid?

时间:2015-11-12 06:36:57

标签: javascript angularjs infinite-scroll angular-ui-grid

我正在使用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

注意:我已经搜索了很多内容。

1 个答案:

答案 0 :(得分:2)

几个月前,当我开始使用ui-grid时,无限卷轴很新实现,我遇到了同样的问题。但是这些人正在努力改进事物,当使用最新版本的ui-grid时,无限卷轴就像一个魅力!

updated your Plunkr使用最新的ui-grid版本,一切正常。

<script src="http://ui-grid.info/release/ui-grid.js"></script>