@@ -60,20 +60,23 @@ 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- value = value === null ? defaultValue : Math . floor ( value ) ;
63+ function parseNumber ( value , defaultValue , isFloat ) {
64+ if ( ! isFloat ) {
65+ value = value === null ? defaultValue : Math . floor ( value ) ;
66+ }
6567 return isNaN ( value ) ? defaultValue : value ;
6668 }
6769
68- function parseNumericAttr ( value , defaultValue ) {
70+ function parseNumericAttr ( value , defaultValue , isFloat ) {
6971 const result = $parse ( value ) ( $scope ) ;
70- return getIntegerNumber ( result , defaultValue ) ;
72+ return parseNumber ( result , defaultValue , isFloat ) ;
7173 }
7274
7375 const BUFFER_MIN = 3 ;
7476 const BUFFER_DEFAULT = 10 ;
7577 const PADDING_MIN = 0.3 ;
7678 const PADDING_DEFAULT = 0.5 ;
79+ const START_INDEX_DEFAULT = 1 ;
7780 const MAX_VIEWPORT_DELAY = 500 ;
7881 const VIEWPORT_POLLING_INTERVAL = 50 ;
7982
@@ -82,8 +85,8 @@ angular.module('ui.scroll', [])
8285 const datasourceName = match [ 2 ] ;
8386 const viewportController = controllers [ 0 ] ;
8487 const bufferSize = Math . max ( BUFFER_MIN , parseNumericAttr ( $attr . bufferSize , BUFFER_DEFAULT ) ) ;
85- const padding = Math . max ( PADDING_MIN , parseNumericAttr ( $attr . padding , PADDING_DEFAULT ) ) ;
86- let startIndex = parseNumericAttr ( $attr . startIndex ) ;
88+ const padding = Math . max ( PADDING_MIN , parseNumericAttr ( $attr . padding , PADDING_DEFAULT , true ) ) ;
89+ let startIndex = parseNumericAttr ( $attr . startIndex , START_INDEX_DEFAULT ) ;
8790 let ridActual = 0 ; // current data revision id
8891 let pending = [ ] ;
8992
@@ -240,7 +243,7 @@ angular.module('ui.scroll', [])
240243 viewport . resetTopPadding ( ) ;
241244 viewport . resetBottomPadding ( ) ;
242245 if ( arguments . length ) {
243- startIndex = getIntegerNumber ( arguments [ 0 ] ) ;
246+ startIndex = parseNumber ( arguments [ 0 ] , START_INDEX_DEFAULT , false ) ;
244247 }
245248 buffer . reset ( startIndex ) ;
246249 persistDatasourceIndex ( datasource , 'minIndex' ) ;
0 commit comments