我正在尝试使用Ionic Framework构建一个简单的混合应用程序。
我想创建一个inifite滚动系统,所以我有:
.controller('DiscoverCtrl', function (uris, $scope, $cordovaToast, $http, $ionicLoading, $ionicSideMenuDelegate, $ionicScrollDelegate, $ionicPopover, localStorage, $ionicPlatform, helpers) {
var loadCircuits = function(page_to_load) {
var page_to_load = page_to_load || 1
$http.get(uris({pagination: true, per_page: 10, page: page_to_load}).circuits.discover, {timeout: 20000})
.success(function(response, status, headers, config) {
alert("success")
angular.forEach(response.circuits, function (circuit) {
$scope.cards.push(circuit);
// console.log(circuit.description)
});
$scope.next_page = response.pagination.next_page;
})
.error(function(data, status, headers, config) {
$ionicLoading.hide();
// called asynchronously if an error occurs
// or server returns response with an error status.
$cordovaToast.showLongBottom('Sory, request failed:' + status).then(function(success) {
// success
}, function (error) {
// error
});
});
}
loadCircuits();
// Load more data
$scope.loadMoreData = function() {
alert("loadMore")
loadCircuits($scope.next_page);
}
});
和
<ion-infinite-scroll
immediate-check="false"
on-infinite="loadMoreData()"
distance="1%">
</ion-infinite-scroll>
但我面临以下问题:
我第一次拨打loadCircuits()
时,success
回调会正常触发。第二次(意思是当我们调用$scope.loadMoreData()
时,在实际执行$ http.get请求之前触发成功回调...而且我不明白为什么。
Angular Version:1.4.3。
感谢您的帮助。
答案 0 :(得分:0)
$ http调用是针对具有相同参数的相同网址进行缓存的,因此在您的情况下,参数可能无法更改,我会考虑记录下一页。
您还可以强制不使用
进行缓存cache: false
在$ http request config
中