は私が実装しているか聞こえるあなたはon-infinite="loadMore()"
ion-infinite-scroll
での書き込み機能を書いて、コントローラで
loadMore
機能で次の15項目を取得する必要があります
infinite-scroll
in私のアプリ
<ion-infinite-scroll ng-if="!loadMorePeople" on-infinite="loadPeople()" distance="1%"></ion-infinite-scroll>
loadPeople()ロードし、すべてのスクロールデータ、それは私もいくつかの理由の.pushのためにあなたと同じ問題を抱えていた
$scope.loadMorePeople=false;
$scope.loadPeople = function() {
if($scope.peoples != null){
$http({
method: "get",
url: baseUrl+"company-members?page="+$scope.pagePeople,
withCredentials: true,
headers: {
'Accept' : 'application/json, text/plain, */*',
'Authorization' : ''+window.localStorage.getItem("token_type")+' '+window.localStorage.getItem("token")
}
})
.success(function(data) {
if(data.length > 0){
var newPeople = data;
$scope.temp = $scope.peoples.concat(newPeople);
$scope.peoples = arrayUnique($scope.temp, 'id');
function arrayUnique(collection, keyname) {
var output = [],
keys = [];
angular.forEach(collection, function(item) {
var key = item[keyname];
if(keys.indexOf(key) === -1) {
keys.push(key);
output.push(item);
}
});
return output;
};
++$scope.pagePeople;
$scope.$broadcast("scroll.infiniteScrollComplete");
}else{
$scope.loadMorePeople=true;
$scope.$broadcast("scroll.infiniteScrollComplete");
}
})
.error(function(data, status) {
});
}
$scope.$broadcast("scroll.infiniteScrollComplete");
};
コードが怒鳴るあるのです()は働いていなかった私は、この回避策をしました。
私はdata
はそれがif(data.length > 0){}
にnullではない場合にチェックし、それらをマージする.concat(newPeople)
を使用し、最終的に重複実体がないことを確認するarrayUnique($scope.temp, 'id')
を使用しました。
ng-if="!loadMorePeople"
を使用することをお勧めします。それ以外の場合は、データが残っていなければコールを停止し、コールが継続的に行われるようにします。
これがあなたの問題を解決することを願っています。あなたが助けが必要なら私に知らせてください:D
それは動作しません、私はconsoled.loggedすべて。それはプッシュしていないようです:/ –
リンクで指定された例を確認し、これに従ってみてください –