fix(slidebox): properly cleanup window resize listener

This commit is contained in:
Andrew
2015-04-13 14:16:24 -06:00
parent e86b331d12
commit 51f8f3cdf9
3 changed files with 17 additions and 14 deletions

View File

@@ -129,7 +129,10 @@ function($timeout, $compile, $ionicSlideBoxDelegate, $ionicHistory, $ionicScroll
return $ionicHistory.isActiveScope($scope);
}
);
$scope.$on('$destroy', deregisterInstance);
$scope.$on('$destroy', function() {
deregisterInstance();
slider.kill();
});
this.slidesCount = function() {
return slider.slidesCount();

View File

@@ -544,17 +544,8 @@ ionic.views.Slider = ionic.views.View.inherit({
element.style.width = '';
element.style.left = '';
// reset slides
var pos = slides.length;
while(pos--) {
var slide = slides[pos];
slide.style.width = '';
slide.style.left = '';
if (browser.transitions) translate(pos, 0, 0);
}
// reset slides so no refs are held on to
slides && (slides.length = 0);
// removed event listeners
if (browser.addEventListener) {

View File

@@ -46,8 +46,17 @@
<div ng-controller="SlideCtrl">
<ion-side-menus>
<ion-side-menu-content>
<ion-header-bar left-buttons="leftButtons" right-buttons="rightButtons" title=""></ion-header-bar>
<ion-slide-box on-slide-changed="slideChanged(index)" show-pager="{{$root.showPager}}" pager-click="pagerClick(index)" does-continue="true" auto-play="false">
<ion-header-bar>
<div class="button" ng-click="$root.hideSlideBox = !$root.hideSlideBox">
Toggle
</div>
</ion-header-bar>
<ion-slide-box ng-if="!$root.hideSlideBox"
on-slide-changed="slideChanged(index)"
show-pager="{{$root.showPager}}"
pager-click="pagerClick(index)"
does-continue="true"
auto-play="false">
<ion-slide ng-controller="FirstSlideCtrl">
<h3>Thank you for choosing the Awesome App!</h3>
<div id="logo">