我使用离子无限滚动来加载来自php api服务的数据。
问题是在on-infinite属性(即loadmore函数)上定义的方法在到达底部时被多次调用。
这是我的代码
<div class="card" ng-repeat="result in results">
<div>{{result.name}}</div>
</div>
<ion-infinite-scroll immediate-check="false" on-infinite="loadMore()" distance="10%" ng-if="!noMoreItemsAvailable"></ion-infinite-scroll>
这是我的控制器js
$scope.loadMore=function(){
console.log("Load more item clicked");
//get data from api service
$http.get(url).then(function(msg){
$scope.results=$scope.results.concat(msg.data)
});
};
当它到达底部时,我会多次获得控制台消息Load more item clicked
,有时它会变为无限次。
有谁知道为什么会这样?
答案 0 :(得分:-1)
完成从服务中提取数据并将其分配给$scope.$broadcast('scroll.infiniteScrollComplete');
后,请致电scope
。
在这种情况下,呼叫应该在$scope.results=$scope.results.concat(msg.data);
之后。