@@ -60,15 +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 parseNumericAttr ( value , defaultValue ) {
63+ function parseNumber ( value , defaultValue , isFloat ) {
64+ if ( ! isFloat ) {
65+ value = value === null ? defaultValue : Math . floor ( value ) ;
66+ }
67+ return isNaN ( value ) ? defaultValue : value ;
68+ }
69+
70+ function parseNumericAttr ( value , defaultValue , isFloat ) {
6471 const result = $parse ( value ) ( $scope ) ;
65- return isNaN ( result ) ? defaultValue : result ;
72+ return parseNumber ( result , defaultValue , isFloat ) ;
6673 }
6774
6875 const BUFFER_MIN = 3 ;
6976 const BUFFER_DEFAULT = 10 ;
7077 const PADDING_MIN = 0.3 ;
7178 const PADDING_DEFAULT = 0.5 ;
79+ const START_INDEX_DEFAULT = 1 ;
7280 const MAX_VIEWPORT_DELAY = 500 ;
7381 const VIEWPORT_POLLING_INTERVAL = 50 ;
7482
@@ -77,8 +85,8 @@ angular.module('ui.scroll', [])
7785 const datasourceName = match [ 2 ] ;
7886 const viewportController = controllers [ 0 ] ;
7987 const bufferSize = Math . max ( BUFFER_MIN , parseNumericAttr ( $attr . bufferSize , BUFFER_DEFAULT ) ) ;
80- const padding = Math . max ( PADDING_MIN , parseNumericAttr ( $attr . padding , PADDING_DEFAULT ) ) ;
81- let startIndex = parseNumericAttr ( $attr . startIndex , 1 ) ;
88+ const padding = Math . max ( PADDING_MIN , parseNumericAttr ( $attr . padding , PADDING_DEFAULT , true ) ) ;
89+ let startIndex = parseNumericAttr ( $attr . startIndex , START_INDEX_DEFAULT ) ;
8290 let ridActual = 0 ; // current data revision id
8391 let pending = [ ] ;
8492
@@ -235,7 +243,7 @@ angular.module('ui.scroll', [])
235243 viewport . resetTopPadding ( ) ;
236244 viewport . resetBottomPadding ( ) ;
237245 if ( arguments . length ) {
238- startIndex = arguments [ 0 ] ;
246+ startIndex = parseNumber ( arguments [ 0 ] , START_INDEX_DEFAULT , false ) ;
239247 }
240248 buffer . reset ( startIndex ) ;
241249 persistDatasourceIndex ( datasource , 'minIndex' ) ;
0 commit comments