无限滚动离子framewrok:Loadmore()多次调用

时间:2015-12-07 05:22:44

标签: javascript angularjs cordova ionic-framework

我使用离子无限滚动来加载来自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,有时它会变为无限次。 有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:-1)

完成从服务中提取数据并将其分配给$scope.$broadcast('scroll.infiniteScrollComplete');后,请致电scope

在这种情况下,呼叫应该在$scope.results=$scope.results.concat(msg.data);之后。