@@ -60,9 +60,13 @@ angular.module('ui.scroll', [])
60
60
throw new Error ( 'Expected uiScroll in form of \'_item_ in _datasource_\' but got \'' + $attr . uiScroll + '\'' ) ;
61
61
}
62
62
63
+ function getIntegerNumber ( value , defaultValue = 1 ) {
64
+ return isNaN ( value ) ? defaultValue : Math . floor ( value ) ;
65
+ }
66
+
63
67
function parseNumericAttr ( value , defaultValue ) {
64
68
const result = $parse ( value ) ( $scope ) ;
65
- return isNaN ( result ) ? defaultValue : result ;
69
+ return getIntegerNumber ( result , defaultValue ) ;
66
70
}
67
71
68
72
const BUFFER_MIN = 3 ;
@@ -78,7 +82,7 @@ angular.module('ui.scroll', [])
78
82
const viewportController = controllers [ 0 ] ;
79
83
const bufferSize = Math . max ( BUFFER_MIN , parseNumericAttr ( $attr . bufferSize , BUFFER_DEFAULT ) ) ;
80
84
const padding = Math . max ( PADDING_MIN , parseNumericAttr ( $attr . padding , PADDING_DEFAULT ) ) ;
81
- let startIndex = parseNumericAttr ( $attr . startIndex , 1 ) ;
85
+ let startIndex = parseNumericAttr ( $attr . startIndex ) ;
82
86
let ridActual = 0 ; // current data revision id
83
87
let pending = [ ] ;
84
88
@@ -235,7 +239,7 @@ angular.module('ui.scroll', [])
235
239
viewport . resetTopPadding ( ) ;
236
240
viewport . resetBottomPadding ( ) ;
237
241
if ( arguments . length ) {
238
- startIndex = arguments [ 0 ] ;
242
+ startIndex = getIntegerNumber ( arguments [ 0 ] ) ;
239
243
}
240
244
buffer . reset ( startIndex ) ;
241
245
persistDatasourceIndex ( datasource , 'minIndex' ) ;
0 commit comments