用jsdata离子刷新似乎不起作用

时间:2016-10-21 07:53:50

标签: ionic-framework pull-to-refresh jsdata js-data-angular

我的离子应用使用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');
        });
    };

});

1 个答案:

答案 0 :(得分:1)

doRefresh方法中,您需要将bypassCache: true传递给findAll,以强制它尝试发出新请求,例如

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

详细了解behavior of DS#findAll in JSData 2.x