我的离子应用使用jsdata数据存储进行缓存http://www.js-data.io/docs/home
。
我正在尝试使用ion-refresher指令在我的应用程序中实现pull to refresh功能。
doRefresh似乎根本不会进行Get Call。
当我点击Pull to refresh时,下面代码中的所有console.log消息都会被执行。
但是,如果我检查了网络标签,我根本看不到正在接听电话
没有数据刷新,也没有任何错误。
我不确定为什么会发生这种情况或者我做错了什么。
我的代码:
HTML:
<ion-refresher
pulling-text="Pull to refresh..."
on-refresh="doRefresh()">
</ion-refresher>
控制器:
.controller('ProfileInfo', function($scope, Profile) {
$scope.load = function() {
$scope.error = undefined;
Profile.findAll().then(function(response) {
$scope.Profile = response[0];
}).catch(function(err) {
$scope.error = err;
});
};
$scope.load();
$scope.doRefresh = function() {
console.log("hi")
$scope.error = undefined;
$scope.Profile = [];
Profile.findAll().then(function(response) {
console.log($scope.Profile)
$scope.Profile = response[0];
console.log($scope.Profile)
console.log("Done")
}).catch(function(err) {
console.log("err", err)
$scope.error = err;
}).finally(function(){
console.log("in finally")
$scope.$broadcast('scroll.refreshComplete');
});
};
});
答案 0 :(得分:1)
在doRefresh
方法中,您需要将bypassCache: true
传递给findAll
,以强制它尝试发出新请求,例如
var query = {};
var options = {
bypassCache: true
};
Profile.findAll(query, options).then(...);