diff --git a/js/ext/angular/src/directive/ionicContent.js b/js/ext/angular/src/directive/ionicContent.js index f1abd1a57d3..2aa8914295e 100644 --- a/js/ext/angular/src/directive/ionicContent.js +++ b/js/ext/angular/src/directive/ionicContent.js @@ -87,8 +87,8 @@ function($parse, $timeout, $ionicScrollDelegate, $controller, $ionicBind) { $onRefreshOpening: '&onRefreshOpening', $onScroll: '&onScroll', $onScrollComplete: '&onScrollComplete', + $onInfiniteScroll: '&onInfiniteScroll', refreshComplete: '=', - onInfiniteScroll: '&', infiniteScrollDistance: '@', hasBouncing: '@', scroll: '@', @@ -160,40 +160,6 @@ function($parse, $timeout, $ionicScrollDelegate, $controller, $ionicBind) { } }; } - - // Check if this supports infinite scrolling and listen for scroll events - // to trigger the infinite scrolling - // TODO(ajoslin): move functionality out of this function and make testable - var infiniteScroll = $element.find('ion-infinite-scroll'); - var infiniteStarted = false; - if(infiniteScroll) { - // Parse infinite scroll distance - var distance = attr.infiniteScrollDistance || '1%'; - var maxScroll; - if(distance.indexOf('%')) { - // It's a multiplier - maxScroll = function() { - return scrollView.getScrollMax().top * ( 1 - parseInt(distance, 10) / 100 ); - }; - } else { - // It's a pixel value - maxScroll = function() { - return scrollView.getScrollMax().top - parseInt(distance, 10); - }; - } - $element.bind('scroll', function(e) { - if( scrollView && !infiniteStarted && (scrollView.getValues().top > maxScroll() ) ) { - infiniteStarted = true; - infiniteScroll.addClass('active'); - var cb = function() { - scrollView.resize(); - infiniteStarted = false; - infiniteScroll.removeClass('active'); - }; - $scope.$apply(angular.bind($scope, $scope.onInfiniteScroll, cb)); - } - }); - } } } }; @@ -218,12 +184,50 @@ function($parse, $timeout, $ionicScrollDelegate, $controller, $ionicBind) { }; }) -.directive('ionInfiniteScroll', function() { +.directive('ionInfiniteScroll', ['$ionicBind', function($ionicBind) { return { restrict: 'E', - replace: false, - template: '