Non
Non

Reputation: 8589

IonicFramework: Pull to Refresh not working

I am trying to use the Ionic's Pull to Refresh tool for first time but still not working for me

this is a controller where I am calling a factory/service in order to have a list of sports in the view

.controller('sportsCtrl', function($scope, SportsFactory, AuthFactory) {

 $scope.sports = [];

    AuthFactory.getCustomer().then(function(customer) {
      $scope.customer = customer;
      SportsFactory.getSportsWithLeagues(customer).then(function(sports) {
        if (sports.length) {
          $scope.sports = sports;
        }else {
          AuthFactory.logout();
        }
     //Here is the function to call the refresher//
        $scope.doRefresh = function() {
          $scope.sports = sports;
          $scope.$broadcast('scroll.refreshComplete');
          $scope.$apply();
        };
    //////////////////////////////////////////////
      }, function(err) {
        console.log(err);
      });
    }
})

HTML

<ion-refresher
  pulling-text="Pull to refresh..."
  on-refresh="doRefresh()">
</ion-refresher>

does anyone has an idea ?

Upvotes: 1

Views: 2208

Answers (1)

Claies
Claies

Reputation: 22323

Your doRefresh() is defined in the wrong location. It is defined inside the resolve function for getSportsWithLeagues. It should be defined as a property on the controller. The code is all out of order, This should be a better order of operations:

$scope.doRefresh = function() {
    AuthFactory.getCustomer().then(function(customer) {
        $scope.customer = customer;
        SportsFactory.getSportsWithLeagues(customer).then(function(sports) {
            if (sports.length) {
                $scope.sports = sports;
            }else {
                AuthFactory.logout();
        }, function(err) {
            console.log(err);
        });
    $scope.$broadcast('scroll.refreshComplete');
    };
};

Upvotes: 3

Related Questions