2016-10-21 1 views
1

Mon application ionique utilise jsdata datastore pour la mise en cache http://www.js-data.io/docs/home .
J'essaie d'implémenter la fonction pull to refresh dans mon application en utilisant la directive ion-refresher.
rafraîchissement ionique avec jsdata ne semble pas fonctionner

Le DoRefresh ne semble pas du tout faire un appel Get.
Lorsque je clique sur Pull pour actualiser, tous les messages console.log du code ci-dessous sont exécutés.
Cependant, si je vérifie l'onglet du réseau, je ne vois pas un appel Get fait du tout.
Aucune donnée n'est actualisée, ni aucune erreur.
Je ne sais pas pourquoi cela se passe ou ce que je fais mal.

Mon 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'); 
     }); 
    }; 

}); 

Répondre

1

l'intérieur de votre méthode doRefresh, vous devez passer à bypassCache: truefindAll tout pour le forcer essayer une nouvelle demande, par exemple

var query = {}; 
var options = { 
    bypassCache: true 
}; 
Profile.findAll(query, options).then(...); 

En savoir plus sur le behavior of DS#findAll in JSData 2.x.

+0

Cela a fonctionné! Merci!! :) –