我是angularjs和ionic的初学者,我正在实现无限滚动,当我加载第二组记录时使用我的当前脚本,它无法捕获lastid
和新生成的记录到交上来。
例如,当页面第一次加载时(一次显示2条记录),当用户滚动到页面底部时lastid
为10,它会传递lastid 10以获取下一组记录再次向下滚动,它会传递相同的lastid
10而不是8
$scope.lastid = "";
$http.get('http://localhost/myapp/feeds.php').success(function(data){
console.log(JSON.stringify(data));
$scope.feeds=data;
$scope.lastid = $scope.feeds[$scope.feeds.length - 1].user_id;
});
$scope.addMoreItem = function(){
$http.get('http://localhost/myapp/feeds_more.php?user_id='+$scope.lastid).success(function(data){
$scope.temp=data;
for(var i = 0; i < $scope.temp.length - 1; i++) {
$scope.feeds.push($scope.temp[i]);
if(i == $scope.temp.length - 1){
$scope.lastid = $scope.temp[i].user_id;
}
}
});
$scope.$broadcast('scroll.infiniteScrollComplete');
};
HTML
<ion-infinite-scroll on-infinite="addMoreItem()" distance="1%"> </ion-infinite-scroll>
有一件事是在第一条记录显示chrome控制台之前读取了很多错误:Cannot read property 'push' of undefined
当页面仍然显示时它会自动重新加载相同的记录