Skip to content

Commit 51f8f3c

Browse files
committed
fix(slidebox): properly cleanup window resize listener
1 parent e86b331 commit 51f8f3c

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

Diff for: js/angular/directive/slideBox.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,10 @@ function($timeout, $compile, $ionicSlideBoxDelegate, $ionicHistory, $ionicScroll
129129
return $ionicHistory.isActiveScope($scope);
130130
}
131131
);
132-
$scope.$on('$destroy', deregisterInstance);
132+
$scope.$on('$destroy', function() {
133+
deregisterInstance();
134+
slider.kill();
135+
});
133136

134137
this.slidesCount = function() {
135138
return slider.slidesCount();

Diff for: js/views/sliderView.js

+2-11
Original file line numberDiff line numberDiff line change
@@ -544,17 +544,8 @@ ionic.views.Slider = ionic.views.View.inherit({
544544
element.style.width = '';
545545
element.style.left = '';
546546

547-
// reset slides
548-
var pos = slides.length;
549-
while(pos--) {
550-
551-
var slide = slides[pos];
552-
slide.style.width = '';
553-
slide.style.left = '';
554-
555-
if (browser.transitions) translate(pos, 0, 0);
556-
557-
}
547+
// reset slides so no refs are held on to
548+
slides && (slides.length = 0);
558549

559550
// removed event listeners
560551
if (browser.addEventListener) {

Diff for: test/html/slideBox.html

+11-2
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,17 @@
4646
<div ng-controller="SlideCtrl">
4747
<ion-side-menus>
4848
<ion-side-menu-content>
49-
<ion-header-bar left-buttons="leftButtons" right-buttons="rightButtons" title=""></ion-header-bar>
50-
<ion-slide-box on-slide-changed="slideChanged(index)" show-pager="{{$root.showPager}}" pager-click="pagerClick(index)" does-continue="true" auto-play="false">
49+
<ion-header-bar>
50+
<div class="button" ng-click="$root.hideSlideBox = !$root.hideSlideBox">
51+
Toggle
52+
</div>
53+
</ion-header-bar>
54+
<ion-slide-box ng-if="!$root.hideSlideBox"
55+
on-slide-changed="slideChanged(index)"
56+
show-pager="{{$root.showPager}}"
57+
pager-click="pagerClick(index)"
58+
does-continue="true"
59+
auto-play="false">
5160
<ion-slide ng-controller="FirstSlideCtrl">
5261
<h3>Thank you for choosing the Awesome App!</h3>
5362
<div id="logo">

0 commit comments

Comments
 (0)