名氏如何我已經實現infinite-scroll
在我的應用程序中
<ion-infinite-scroll ng-if="!loadMorePeople" on-infinite="loadPeople()" distance="1%"></ion-infinite-scroll>
loadPeople()加載所有滾動的數據,它的代碼是波紋管
$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");
};
我也有同樣的問題,因爲你由於某種原因.push()沒有工作,所以我做了這個解決辦法。
我把data
檢查,如果它不是在if(data.length > 0){}
空,然後用.concat(newPeople)
合併它們,最後用arrayUnique($scope.temp, 'id')
,以確保沒有重複的實體。
使用ng-if="!loadMorePeople"
它也是一個好主意,如果沒有數據留下來取回,呼叫將繼續進行,這有助於停止呼叫。
我希望這可以解決您的問題。讓我知道如果你需要任何幫助:D
它不工作,我安慰。它似乎沒有推動:/ –
檢查鏈接中給出的例子,並嘗試按照此 –