@@ -60,9 +60,13 @@ angular.module('ui.scroll', [])
6060 throw new Error ( 'Expected uiScroll in form of \'_item_ in _datasource_\' but got \'' + $attr . uiScroll + '\'' ) ;
6161 }
6262
63+ function getIntegerNumber ( value , defaultValue = 1 ) {
64+ return isNaN ( value ) ? defaultValue : Math . floor ( value ) ;
65+ }
66+
6367 function parseNumericAttr ( value , defaultValue ) {
6468 const result = $parse ( value ) ( $scope ) ;
65- return isNaN ( result ) ? defaultValue : result ;
69+ return getIntegerNumber ( result , defaultValue ) ;
6670 }
6771
6872 const BUFFER_MIN = 3 ;
@@ -78,7 +82,7 @@ angular.module('ui.scroll', [])
7882 const viewportController = controllers [ 0 ] ;
7983 const bufferSize = Math . max ( BUFFER_MIN , parseNumericAttr ( $attr . bufferSize , BUFFER_DEFAULT ) ) ;
8084 const padding = Math . max ( PADDING_MIN , parseNumericAttr ( $attr . padding , PADDING_DEFAULT ) ) ;
81- let startIndex = parseNumericAttr ( $attr . startIndex , 1 ) ;
85+ let startIndex = parseNumericAttr ( $attr . startIndex ) ;
8286 let ridActual = 0 ; // current data revision id
8387 let pending = [ ] ;
8488
@@ -235,7 +239,7 @@ angular.module('ui.scroll', [])
235239 viewport . resetTopPadding ( ) ;
236240 viewport . resetBottomPadding ( ) ;
237241 if ( arguments . length ) {
238- startIndex = arguments [ 0 ] ;
242+ startIndex = getIntegerNumber ( arguments [ 0 ] ) ;
239243 }
240244 buffer . reset ( startIndex ) ;
241245 persistDatasourceIndex ( datasource , 'minIndex' ) ;
0 commit comments