mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
25
js/angular/controller/navViewController.js
vendored
25
js/angular/controller/navViewController.js
vendored
@@ -45,7 +45,14 @@ function($scope, $element, $attrs, $compile, $controller, $ionicNavBarDelegate,
|
||||
$element.data('$uiView', viewData);
|
||||
|
||||
var deregisterInstance = $ionicNavViewDelegate._registerInstance(self, $attrs.delegateHandle);
|
||||
$scope.$on('$destroy', deregisterInstance);
|
||||
$scope.$on('$destroy', function() {
|
||||
deregisterInstance();
|
||||
|
||||
// ensure no scrolls have been left frozen
|
||||
if (self.isSwipeFreeze) {
|
||||
$ionicScrollDelegate.freezeAllScrolls(false);
|
||||
}
|
||||
});
|
||||
|
||||
$scope.$on('$ionicHistory.deselect', self.cacheCleanup);
|
||||
|
||||
@@ -176,6 +183,11 @@ function($scope, $element, $attrs, $compile, $controller, $ionicNavBarDelegate,
|
||||
}
|
||||
|
||||
navSwipeAttr('');
|
||||
|
||||
// ensure no scrolls have been left frozen
|
||||
if (self.isSwipeFreeze) {
|
||||
$ionicScrollDelegate.freezeAllScrolls(false);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -303,7 +315,7 @@ function($scope, $element, $attrs, $compile, $controller, $ionicNavBarDelegate,
|
||||
|
||||
if (!windowWidth) windowWidth = window.innerWidth;
|
||||
|
||||
freezeScrolls(true);
|
||||
self.isSwipeFreeze = $ionicScrollDelegate.freezeAllScrolls(true);
|
||||
|
||||
var registerData = {
|
||||
direction: 'back'
|
||||
@@ -387,7 +399,7 @@ function($scope, $element, $attrs, $compile, $controller, $ionicNavBarDelegate,
|
||||
|
||||
windowWidth = viewTransition = dragPoints = null;
|
||||
|
||||
freezeScrolls(false);
|
||||
self.isSwipeFreeze = $ionicScrollDelegate.freezeAllScrolls(false);
|
||||
}
|
||||
|
||||
function getDragX(ev) {
|
||||
@@ -409,13 +421,6 @@ function($scope, $element, $attrs, $compile, $controller, $ionicNavBarDelegate,
|
||||
};
|
||||
|
||||
|
||||
function freezeScrolls(freeze) {
|
||||
forEach($ionicScrollDelegate._instances, function(instance) {
|
||||
instance.freezeScroll(freeze);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function navSwipeAttr(val) {
|
||||
ionic.DomUtil.cachedAttr($element, 'nav-swipe', val);
|
||||
}
|
||||
|
||||
9
js/angular/controller/scrollController.js
vendored
9
js/angular/controller/scrollController.js
vendored
@@ -158,9 +158,12 @@ function($scope,
|
||||
});
|
||||
};
|
||||
|
||||
self.freezeScroll = function(shouldFreeze) {
|
||||
if (arguments.length) scrollView.options.freeze = shouldFreeze;
|
||||
return scrollView.options.freeze;
|
||||
self.freezeScroll = scrollView.freeze;
|
||||
|
||||
self.freezeAllScrolls = function(shouldFreeze) {
|
||||
for (var i = 0; i < $ionicScrollDelegate._instances.length; i++) {
|
||||
$ionicScrollDelegate._instances[x].freezeScroll(shouldFreeze);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user