Ionic infinite scroll
###아이오닉에서 스크롤 통신 구현하기
- 템플릿에 ion-infinite-scroll 쓰기
<ion-infinite-scroll on-infinite="loadMore()" distance="5%" ng-if="!noMoreItemsAvailable"></ion-infinite-scroll>
- loadMore 함수에서 서버와 통신하고, ng-if에서 불러올 것이 더이상 없는 지 체크
- controller 부분 함수 선언 및 팩토리 이용하기
- 불러올 때마다 기존 slacks와 concat으로 합치기
$scope.slacks = [];
$scope.noMoreItemsAvailable =false;
var num = 0;
var AJAX_URL = "/주소";
$scope.loadMore = function() {
ListGet.ListMore(AJAX_URL, num).then(function(slacks){
if(slacks === 404){
$scope.noMoreItemsAvailable = true;
}
else{
num += 1;
$scope.slacks = $scope.slacks.concat(slacks);
$scope.$broadcast('scroll.infiniteScrollComplete');
}
});
};
- factory 부분
- 서버에서 404로 return 하면 더이상 불러올 값이 없음
ListMore: function(AJAX_URL, num){
return $http.get(BASE_URL+ AJAX_URL+ num +'/').then(function(resp){
lists = resp.data;
return lists;
},
function(err) {
lists = err.status;
return lists;
})
refresh 부분도 동일한 구조로 이용할 수 있음
$scope.doRefresh = function() {
num = 0;
$scope.noMoreItemsAvailable = false;
ListGet.ListMore(AJAX_URL, num).then(function(slacks){
num += 1;
$scope.slacks = slacks;
$scope.$broadcast('scroll.refreshComplete');
});
};
Written on 2016 Feb, 29