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

标签 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这是我在实现无限滚动时所面临的。

注意:我已经用谷歌搜索了很多。

最佳答案

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

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

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

关于javascript - 如何在内容加载完成时停止 ui-grid 的无限滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33665641/

相关文章:

javascript - Angular js : $injector:modulerr Module Error

javascript - 将特定文本与 Angular 列表中的文本字段交换

Javascript 函数乱序完成——异步

javascript - 提交前检查下拉列表

javascript - 如何使用 Angular $on 将变量传递给命名函数?

JavaScript:滚动并获取项目位置会触发错误

c# - WP 8.1 ISupportIncrementalLoading LoadMoreItemsAsync 不断被调用

jquery - CSS 属性不适用于 jQuery 无限滚动中的附加项

javascript - 在播放幻灯片时访问视频剪辑时间标记

javascript - 如何使用react-native-tab-view显示动态选项卡?