mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
fix(sideMenu): allow expose-aside-when on the right side. Closes #2207
This commit is contained in:
14
js/angular/controller/sideMenuController.js
vendored
14
js/angular/controller/sideMenuController.js
vendored
@@ -259,14 +259,16 @@ function($scope, $attrs, $ionicSideMenuDelegate, $ionicPlatform, $ionicBody) {
|
||||
};
|
||||
|
||||
self.exposeAside = function(shouldExposeAside) {
|
||||
if(!self.left || !self.left.isEnabled) return;
|
||||
|
||||
if(!(self.left && self.left.isEnabled) && !(self.right && self.right.isEnabled))return;
|
||||
self.close();
|
||||
isAsideExposed = shouldExposeAside;
|
||||
|
||||
// set the left marget width if it should be exposed
|
||||
// otherwise set false so there's no left margin
|
||||
self.content.setMarginLeft( isAsideExposed ? self.left.width : 0 );
|
||||
if(self.left && self.left.isEnabled){
|
||||
// set the left marget width if it should be exposed
|
||||
// otherwise set false so there's no left margin
|
||||
self.content.setMarginLeft( isAsideExposed ? self.left.width : 0 );
|
||||
}else if(self.right && self.right.isEnabled){
|
||||
self.content.setMarginRight( isAsideExposed ? self.right.width : 0 );
|
||||
}
|
||||
|
||||
self.$scope.$emit('$ionicExposeAside', isAsideExposed);
|
||||
};
|
||||
|
||||
12
js/angular/directive/sideMenuContent.js
vendored
12
js/angular/directive/sideMenuContent.js
vendored
@@ -155,6 +155,18 @@ function($timeout, $ionicGesture, $window) {
|
||||
content.offsetX = 0;
|
||||
}
|
||||
}),
|
||||
setMarginRight: ionic.animationFrameThrottle(function(amount) {
|
||||
if(amount) {
|
||||
amount = parseInt(amount, 10);
|
||||
$element[0].style.width = ($window.innerWidth - amount) + 'px';
|
||||
content.offsetX = amount;
|
||||
} else {
|
||||
$element[0].style.width = '';
|
||||
content.offsetX = 0;
|
||||
}
|
||||
// reset incase left gets grabby
|
||||
$element[0].style[ionic.CSS.TRANSFORM] = 'translate3d(0,0,0)';
|
||||
}),
|
||||
enableAnimation: function() {
|
||||
$scope.animationEnabled = true;
|
||||
$element[0].classList.add('menu-animated');
|
||||
|
||||
@@ -49,6 +49,7 @@ describe('$ionicSideMenus controller', function() {
|
||||
});
|
||||
var content = new Controller({ el: document.createElement('div') });
|
||||
content.setMarginLeft = function(){};
|
||||
content.setMarginRight = function(){};
|
||||
ctrl.setContent(content);
|
||||
});
|
||||
|
||||
@@ -157,6 +158,7 @@ describe('$ionicSideMenus controller', function() {
|
||||
it('should set enabled/disabled exposeAside', function() {
|
||||
expect(ctrl.isAsideExposed()).toEqual(false);
|
||||
ctrl.left.setIsEnabled(false);
|
||||
ctrl.right.setIsEnabled(false);
|
||||
ctrl.exposeAside(true);
|
||||
expect(ctrl.isAsideExposed()).toEqual(false);
|
||||
ctrl.left.setIsEnabled(true);
|
||||
|
||||
Reference in New Issue
Block a user