@@ -73,10 +73,16 @@ angular.module('ui.scroll', [])
7373 return parseNumber ( result , defaultValue , isFloat ) ;
7474 }
7575
76+ function parseBooleanAttr ( value , defaultValue ) {
77+ const result = $parse ( value ) ( $scope ) ;
78+ return typeof result === 'boolean' ? result : defaultValue ;
79+ }
80+
7681 const BUFFER_MIN = 3 ;
7782 const BUFFER_DEFAULT = 10 ;
7883 const PADDING_MIN = 0.3 ;
7984 const PADDING_DEFAULT = 0.5 ;
85+ const HANDLE_INERTIA_DEFAULT = true ;
8086 const START_INDEX_DEFAULT = 1 ;
8187 const MAX_VIEWPORT_DELAY = 500 ;
8288 const VIEWPORT_POLLING_INTERVAL = 50 ;
@@ -87,6 +93,7 @@ angular.module('ui.scroll', [])
8793 const viewportController = controllers [ 0 ] ;
8894 const bufferSize = Math . max ( BUFFER_MIN , parseNumericAttr ( $attr . bufferSize , BUFFER_DEFAULT ) ) ;
8995 const padding = Math . max ( PADDING_MIN , parseNumericAttr ( $attr . padding , PADDING_DEFAULT , true ) ) ;
96+ const handleInertia = parseBooleanAttr ( $attr . handleInertia , HANDLE_INERTIA_DEFAULT ) ;
9097 let startIndex = parseNumericAttr ( $attr . startIndex , START_INDEX_DEFAULT ) ;
9198 let ridActual = 0 ; // current data revision id
9299 let pending = [ ] ;
@@ -501,7 +508,7 @@ angular.module('ui.scroll', [])
501508 }
502509
503510 function resizeAndScrollHandler ( ) {
504- if ( fixInertia ( ) ) {
511+ if ( handleInertia && fixInertia ( ) ) {
505512 return ;
506513 }
507514 if ( ! $rootScope . $$phase && ! adapter . isLoading && ! adapter . disabled ) {
0 commit comments