My ionic app uses jsdata datastore for caching http://www.js-data.io/docs/home
.
I am trying to implement the pull to refresh feature in my app using ion-refresher directive.
The doRefresh doesnot seem to make a Get Call at all.
When I click on Pull to refresh, all the console.log messages in the code below get executed.
However, if I check the Network's tab, I dont see a Get call being made at all.
No data gets refreshed, nor do I get any error.
I am not sure why this is happening or what I am doing wrong.
My code:
HTML:
<ion-refresher
pulling-text="Pull to refresh..."
on-refresh="doRefresh()">
</ion-refresher>
Controller:
.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');
});
};
});
Inside your doRefresh
method, you need to pass bypassCache: true
to findAll
all to force it try make a new request, e.g.
var query = {};
var options = {
bypassCache: true
};
Profile.findAll(query, options).then(...);
Read more about the behavior of DS#findAll
in JSData 2.x.