1

我的 ionic 应用程序使用 jsdata 数据存储来缓存http://www.js-data.io/docs/home
我正在尝试使用 ion-refresher 指令在我的应用程序中实现拉动刷新功能。

doRefresh 似乎根本没有发出 Get 调用。
当我点击 Pull to refresh 时,下面代码中的所有 console.log 消息都会被执行。
但是,如果我检查 Network 的选项卡,我根本看不到 Get 调用。
没有数据被刷新,我也没有收到任何错误。
我不确定为什么会发生这种情况或我做错了什么。

我的代码:

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

});
4

1 回答 1

1

在您的doRefresh方法中,您需要传递bypassCache: truefindAllall 以强制它尝试发出新请求,例如

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

阅读更多关于JSData 2.x 中的行为DS#findAll

于 2016-10-21T14:36:46.140 回答