首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止ngInfiniteScroll在初始触发后多次被触发?

如何防止ngInfiniteScroll在初始触发后多次被触发?
EN

Stack Overflow用户
提问于 2014-11-11 06:51:06
回答 1查看 5.8K关注 0票数 6

我正在使用ngInfiniteScroll启用无限滚动在我的网站上。它在一定程度上如预期的那样工作,一旦我滚动到页面的底部,它就调用我希望它调用的方法来显示更多的帖子,只是在触发一次之后,它一直不停地调用posts。有人知道是什么导致的吗?这就是我的代码在实现ngInfiniteScroll时的样子,我不知道这个特定的代码会有多大帮助。我怀疑它是被另一个文件中的代码抛出的。

代码语言:javascript
复制
<div style="height: 1px">
<post post-item="item" feed-items="items.feed" feed-name="feedName" ng-repeat="item in items.feed"> </post>
<div ng-if="items.feed.length == 0 && !initialLoad">
<div class="empty-message">Your feed is currently empty, visit the <a href="/#/users">Users</a> page     and find some more people to follow!</div>
</div>
<a infinite-scroll="nextPosts()" infinite-scroll-distance="1" href ng-click="nextPosts()"   class="show-more">Show more </a> 
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-20 21:08:57

示例

您可以使用ngInfiniteScrollngInfiniteScroll指令告诉它,如果调用已经在进行中,则不要加载数据。

例如。

代码语言:javascript
复制
<div infinite-scroll='loadMore()' infinite-scroll-disabled='busyLoadingData' infinite-scroll-distance='1'>
  <p ng-repeat='item in items'>Some data</p>
</div>

联署材料:

代码语言:javascript
复制
$scope.busyLoadingData = false;

$scope.loadMore = function () {
  if ($scope.busyLoadingData) return;
  $scope.busyLoadingData = true;

  // $http call to get next set of data
  // on the .success() callback do $scope.busyLoadingData = false;
}
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26859207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档