|
1 | 1 | /*!
|
2 | 2 | * angular-ui-scroll
|
3 | 3 | * https://github.com/angular-ui/ui-scroll.git
|
4 |
| - * Version: 1.5.1 -- 2016-07-08T21:21:05.311Z |
| 4 | + * Version: 1.5.1 -- 2016-08-10T12:02:43.502Z |
5 | 5 | * License: MIT
|
6 | 6 | */
|
7 | 7 |
|
@@ -209,9 +209,7 @@ angular.module('ui.scroll', []).directive('uiScrollViewport', function () {
|
209 | 209 | return buffer;
|
210 | 210 | }
|
211 | 211 |
|
212 |
| - function Viewport(buffer, element, viewportController, attrs) { |
213 |
| - var PADDING_MIN = 0.3; |
214 |
| - var PADDING_DEFAULT = 0.5; |
| 212 | + function Viewport(buffer, element, viewportController, padding) { |
215 | 213 | var topPadding = undefined;
|
216 | 214 | var bottomPadding = undefined;
|
217 | 215 | var viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);
|
@@ -269,7 +267,7 @@ angular.module('ui.scroll', []).directive('uiScrollViewport', function () {
|
269 | 267 | }
|
270 | 268 |
|
271 | 269 | function bufferPadding() {
|
272 |
| - return viewport.outerHeight() * Math.max(PADDING_MIN, +attrs.padding || PADDING_DEFAULT); // some extra space to initiate preload |
| 270 | + return viewport.outerHeight() * padding; // some extra space to initiate preload |
273 | 271 | }
|
274 | 272 |
|
275 | 273 | angular.extend(viewport, {
|
@@ -574,18 +572,28 @@ angular.module('ui.scroll', []).directive('uiScrollViewport', function () {
|
574 | 572 |
|
575 | 573 | if (!match) throw new Error('Expected uiScroll in form of \'_item_ in _datasource_\' but got \'' + $attr.uiScroll + '\'');
|
576 | 574 |
|
| 575 | + function parseNumericAttr(value, defaultValue) { |
| 576 | + var result = $parse(value)($scope); |
| 577 | + return isNaN(result) ? defaultValue : result; |
| 578 | + } |
| 579 | + |
| 580 | + var BUFFER_MIN = 3; |
| 581 | + var BUFFER_DEFAULT = 10; |
| 582 | + var PADDING_MIN = 0.3; |
| 583 | + var PADDING_DEFAULT = 0.5; |
| 584 | + |
577 | 585 | var datasource = null;
|
578 | 586 | var itemName = match[1];
|
579 | 587 | var datasourceName = match[2];
|
580 |
| - var bufferSize = Math.max(3, +$attr.bufferSize || 10); |
581 | 588 | var viewportController = controllers[0];
|
582 |
| - var startIndex = parseInt($attr.startIndex, 10); |
583 |
| - startIndex = isNaN(startIndex) ? 1 : startIndex; |
| 589 | + var bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT)); |
| 590 | + var padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT)); |
| 591 | + var startIndex = parseNumericAttr($attr.startIndex, 1); |
584 | 592 | var ridActual = 0; // current data revision id
|
585 | 593 | var pending = [];
|
586 | 594 |
|
587 | 595 | var buffer = new Buffer(bufferSize);
|
588 |
| - var viewport = new Viewport(buffer, element, viewportController, $attr); |
| 596 | + var viewport = new Viewport(buffer, element, viewportController, padding); |
589 | 597 | var adapter = new Adapter($attr, viewport, buffer, adjustBuffer);
|
590 | 598 | if (viewportController) viewportController.adapter = adapter;
|
591 | 599 |
|
|
0 commit comments