From 518e54ee86aa816d57ff0dcff33d2ce75fa0e712 Mon Sep 17 00:00:00 2001 From: Robin van Baalen Date: Mon, 7 Apr 2014 12:35:52 -0700 Subject: [PATCH] feat($ionicSideMenuDelegate): add isOpen() method Closes #1074. Closes #1075. --- js/controllers/sideMenuController.js | 2 +- js/ext/angular/src/directive/ionicSideMenu.js | 6 ++++++ .../controllers/sideMenuController.unit.js | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/js/controllers/sideMenuController.js b/js/controllers/sideMenuController.js index 6caf120273..2aad0bae15 100644 --- a/js/controllers/sideMenuController.js +++ b/js/controllers/sideMenuController.js @@ -117,7 +117,7 @@ }, isOpen: function() { - return this.getOpenRatio() == 1; + return this.getOpenAmount() !== 0; }, /** diff --git a/js/ext/angular/src/directive/ionicSideMenu.js b/js/ext/angular/src/directive/ionicSideMenu.js index d3b2d1e28f..d31e62cbc8 100644 --- a/js/ext/angular/src/directive/ionicSideMenu.js +++ b/js/ext/angular/src/directive/ionicSideMenu.js @@ -85,6 +85,12 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture', 'ionic.service.vie * opened/opening, and between 0 and -1 if right menu is opened/opening. */ 'getOpenRatio', + /** + * @ngdoc method + * @name $ionicSideMenuDelegate#isOpen + * @returns {boolean} Whether either the left or right menu is currently opened. + */ + 'isOpen', /** * @ngdoc method * @name $ionicSideMenuDelegate#isOpenLeft diff --git a/test/unit/controllers/sideMenuController.unit.js b/test/unit/controllers/sideMenuController.unit.js index 4e1d2be926..82c969f111 100644 --- a/test/unit/controllers/sideMenuController.unit.js +++ b/test/unit/controllers/sideMenuController.unit.js @@ -104,6 +104,25 @@ describe('SideMenuController', function() { expect(ctrl.getOpenPercentage()).toEqual(0); }); + it('should isOpen', function() { + expect(ctrl.isOpen()).toEqual(false); + ctrl.toggleLeft(); + expect(ctrl.isOpen()).toEqual(true); + ctrl.toggleLeft(); + expect(ctrl.isOpen()).toEqual(false); + ctrl.toggleLeft(); + expect(ctrl.isOpen()).toEqual(true); + ctrl.toggleLeft(); + + expect(ctrl.isOpen()).toEqual(false); + ctrl.toggleRight(); + expect(ctrl.isOpen()).toEqual(true); + ctrl.toggleRight(); + expect(ctrl.isOpen()).toEqual(false); + ctrl.toggleRight(); + expect(ctrl.isOpen()).toEqual(true); + }); + it('should isOpenLeft', function() { expect(ctrl.isOpenLeft()).toEqual(false); ctrl.toggleLeft();