@@ -406,6 +406,21 @@ function RepeatManagerFactory($rootScope, $window, $$rAF) {
406
406
( isGridView ? GridViewType : ListViewType ) . call ( view ) ;
407
407
( isStaticView ? StaticViewType : DynamicViewType ) . call ( view ) ;
408
408
409
+ var contentSizeStr = isVertical ? 'getContentHeight' : 'getContentWidth' ;
410
+ var originalGetContentSize = scrollView . options [ contentSizeStr ] ;
411
+ scrollView . options [ contentSizeStr ] = angular . bind ( view , view . getContentSize ) ;
412
+
413
+ scrollView . __$callback = scrollView . __callback ;
414
+ scrollView . __callback = function ( transformLeft , transformTop , zoom , wasResize ) {
415
+ var scrollValue = view . getScrollValue ( ) ;
416
+ if ( renderStartIndex === - 1 ||
417
+ scrollValue + view . scrollPrimarySize > renderAfterBoundary ||
418
+ scrollValue < renderBeforeBoundary ) {
419
+ render ( ) ;
420
+ }
421
+ scrollView . __$callback ( transformLeft , transformTop , zoom , wasResize ) ;
422
+ } ;
423
+
409
424
var isLayoutReady = false ;
410
425
var isDataReady = false ;
411
426
this . refreshLayout = function ( itemsAfterRepeater ) {
@@ -448,6 +463,8 @@ function RepeatManagerFactory($rootScope, $window, $$rAF) {
448
463
}
449
464
} ;
450
465
466
+
467
+
451
468
this . refreshData = function ( newData ) {
452
469
newData || ( newData = [ ] ) ;
453
470
@@ -471,32 +488,21 @@ function RepeatManagerFactory($rootScope, $window, $$rAF) {
471
488
render . destroyed = true ;
472
489
unwatch ( ) ;
473
490
474
- scrollView . __calback = scrollView . __$callback ;
475
491
itemsPool . forEach ( function ( item ) {
476
492
item . scope . $destroy ( ) ;
477
493
item . scope = item . element = item . node = item . images = null ;
478
494
} ) ;
479
495
itemsPool . length = itemsEntering . length = itemsLeaving . length = 0 ;
480
496
itemsShownMap = { } ;
481
497
482
- ( view . onDestroy || angular . noop ) ( ) ;
483
- } ;
498
+ //Restore the scrollView's normal behavior and resize it to normal size.
499
+ scrollView . options [ contentSizeStr ] = originalGetContentSize ;
500
+ scrollView . __callback = scrollView . __$callback ;
501
+ scrollView . resize ( ) ;
484
502
485
- scrollView . options [ isVertical ? 'getContentHeight' : 'getContentWidth' ] =
486
- angular . bind ( view , view . getContentSize ) ;
487
-
488
- scrollView . __$callback = scrollView . __callback ;
489
- scrollView . __callback = function ( transformLeft , transformTop , zoom , wasResize ) {
490
- var scrollValue = view . getScrollValue ( ) ;
491
- if ( renderStartIndex === - 1 ||
492
- scrollValue + view . scrollPrimarySize > renderAfterBoundary ||
493
- scrollValue < renderBeforeBoundary ) {
494
- render ( ) ;
495
- }
496
- scrollView . __$callback ( transformLeft , transformTop , zoom , wasResize ) ;
503
+ ( view . onDestroy || angular . noop ) ( ) ;
497
504
} ;
498
505
499
-
500
506
function forceRerender ( ) {
501
507
return render ( true ) ;
502
508
}
0 commit comments