@@ -568,15 +568,21 @@ angular.module('ui.scroll', [])
568
568
adapter . reload = reload ;
569
569
570
570
// events and bindings
571
- viewport . bind ( 'resize' , resizeAndScrollHandler ) ;
572
- viewport . bind ( 'scroll' , resizeAndScrollHandler ) ;
571
+ function bindEvents ( ) {
572
+ viewport . bind ( 'resize' , resizeAndScrollHandler ) ;
573
+ viewport . bind ( 'scroll' , resizeAndScrollHandler ) ;
574
+ }
573
575
viewport . bind ( 'mousewheel' , wheelHandler ) ;
574
576
577
+ function unbindEvents ( ) {
578
+ viewport . unbind ( 'resize' , resizeAndScrollHandler ) ;
579
+ viewport . unbind ( 'scroll' , resizeAndScrollHandler ) ;
580
+ }
581
+
575
582
$scope . $on ( '$destroy' , ( ) => {
576
583
// clear the buffer. It is necessary to remove the elements and $destroy the scopes
577
584
buffer . clear ( ) ;
578
- viewport . unbind ( 'resize' , resizeAndScrollHandler ) ;
579
- viewport . unbind ( 'scroll' , resizeAndScrollHandler ) ;
585
+ unbindEvents ( ) ;
580
586
viewport . unbind ( 'mousewheel' , wheelHandler ) ;
581
587
} ) ;
582
588
@@ -738,7 +744,9 @@ angular.module('ui.scroll', [])
738
744
enqueueFetch ( rid , false ) ;
739
745
}
740
746
741
- if ( ! pending . length ) {
747
+ if ( pending . length ) {
748
+ // unbindEvents();
749
+ } else {
742
750
return adapter . calculateProperties ( ) ;
743
751
}
744
752
} ) ;
@@ -763,6 +771,7 @@ angular.module('ui.scroll', [])
763
771
764
772
if ( ! pending . length ) {
765
773
adapter . loading ( false ) ;
774
+ bindEvents ( ) ;
766
775
return adapter . calculateProperties ( ) ;
767
776
}
768
777
@@ -828,7 +837,15 @@ angular.module('ui.scroll', [])
828
837
function resizeAndScrollHandler ( ) {
829
838
if ( ! $rootScope . $$phase && ! adapter . isLoading ) {
830
839
adapter . sCount ++ ;
831
- adjustBuffer ( ) ;
840
+ if ( viewport . shouldLoadBottom ( ) ) {
841
+ enqueueFetch ( ridActual , true ) ;
842
+ } else if ( viewport . shouldLoadTop ( ) ) {
843
+ enqueueFetch ( ridActual , false ) ;
844
+ }
845
+
846
+ if ( pending . length ) {
847
+ unbindEvents ( ) ;
848
+ }
832
849
}
833
850
}
834
851
0 commit comments