在ngInfiniteScroll中滚动非常不稳定

时间:2014-10-18 13:14:43

标签: javascript angularjs infinite-scroll nginfinitescroll

我有一个带有无限滚动的角度应用程序。问题是:

  • 当我在页面中间时,会触发加载新内容的回调。当它被触发时,它会转移
  • 当元素添加到页面时,当到达结尾时,即使添加了新内容,滚动也会保持在最后(而新内容应该出现在旧元素之后,用户应该滚动看到它)
  • 当我点击链接并转到下一页时,缩放不会重置,因为它应该

以下是截屏视频:https://imgur.com/KMaCLuQ

现在大家好,这是代码的一部分(包含帖子列表的视图)

 <div infinite-scroll="loadMorePosts()" infinite-scroll-distance="0">


    <md-card ng-repeat="post in posts">
      <h5 ng-bind-html="post.title"></h5>
      <p ng-bind-html="post.body">
      </p>
    </md-card>
  <div layout="horizontal" layout-align="center">


    <md-progress-circular mode="indeterminate" ng-if="more"></md-progress-circular>

  </div>


</div>

如果您想了解更多信息,请随时查看source code

1 个答案:

答案 0 :(得分:1)

我一直在使用ngInfiniteScroll很长一段时间,它对我很好。

我很确定你的代码有问题。

确保使用某种锁系统只调用一次更新函数。这是一个例子:

if ($scope.loaderBusy) {
  return;
}

$scope.loaderBusy = true;

User
.getList()
.then(function(response) {
  $scope.userList = response;
})
.finally(function() {
  $scope.loaderBusy = false;
});

此外,属性infinite-scroll-distance="0"也不是必需的。