From 0eed58a93237bd26c364650fcfb36ecdf3b9e80b Mon Sep 17 00:00:00 2001 From: Valerio Donati Date: Fri, 11 Sep 2015 17:27:21 +0200 Subject: [PATCH 1/4] fix(dropdownToggle): Dropdown not aligned when in right side of page --- src/dropdownToggle/dropdownToggle.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dropdownToggle/dropdownToggle.js b/src/dropdownToggle/dropdownToggle.js index 48a4154..e5aa686 100644 --- a/src/dropdownToggle/dropdownToggle.js +++ b/src/dropdownToggle/dropdownToggle.js @@ -62,7 +62,7 @@ angular.module('mm.foundation.dropdownToggle', [ 'mm.foundation.position', 'mm.f var left = Math.round(offset.left - parentOffset.left); var rightThreshold = $window.innerWidth - dropdownWidth - 8; if (left > rightThreshold) { - left = rightThreshold; + left = left - dropdownWidth + $position.position(element).width; dropdown.removeClass('left').addClass('right'); } css.left = left + 'px'; From f2a77721c36d817e8913585dbcd0112e18509e45 Mon Sep 17 00:00:00 2001 From: Valerio Donati Date: Fri, 18 Sep 2015 14:32:06 +0200 Subject: [PATCH 2/4] fix(dropdownToggle): Dropdown not repositioned when window resized --- src/dropdownToggle/dropdownToggle.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/dropdownToggle/dropdownToggle.js b/src/dropdownToggle/dropdownToggle.js index e5aa686..0d3e83c 100644 --- a/src/dropdownToggle/dropdownToggle.js +++ b/src/dropdownToggle/dropdownToggle.js @@ -90,6 +90,16 @@ angular.module('mm.foundation.dropdownToggle', [ 'mm.foundation.position', 'mm.f } }; $document.on('click', closeMenu); + + angular.element($window).bind('resize', function() { + if (!!openElement) { + var left = $position.position(element).left; + if (dropdown.hasClass('right')) { + left = left - dropdownWidth + $position.position(element).width; + } + dropdown.css('left', left); + } + }); } }; From 7fe8dc0383d5fec5310fb876b94d4fb6ad3c4d4f Mon Sep 17 00:00:00 2001 From: Valerio Donati Date: Wed, 14 Oct 2015 14:58:39 +0200 Subject: [PATCH 3/4] fix(dropdownToggle): Added removeEventListener on destroy --- src/dropdownToggle/dropdownToggle.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/dropdownToggle/dropdownToggle.js b/src/dropdownToggle/dropdownToggle.js index 0d3e83c..0e2db96 100644 --- a/src/dropdownToggle/dropdownToggle.js +++ b/src/dropdownToggle/dropdownToggle.js @@ -91,7 +91,7 @@ angular.module('mm.foundation.dropdownToggle', [ 'mm.foundation.position', 'mm.f }; $document.on('click', closeMenu); - angular.element($window).bind('resize', function() { + repositionMenu = function() { if (!!openElement) { var left = $position.position(element).left; if (dropdown.hasClass('right')) { @@ -99,7 +99,8 @@ angular.module('mm.foundation.dropdownToggle', [ 'mm.foundation.position', 'mm.f } dropdown.css('left', left); } - }); + }; + angular.element($window).on('resize', repositionMenu); } }; @@ -110,8 +111,9 @@ angular.module('mm.foundation.dropdownToggle', [ 'mm.foundation.position', 'mm.f scope.$watch('$location.path', function() { closeMenu(); }); element.on('click', onClick); - element.on('$destroy', function() { + element.on('$destroy', function(resizeMenu) { element.off('click', onClick); + $window.removeEventListener('resize', resizeMenu); }); } }; From ab065c0cc11731ef6b10b4cbb64839f5088f3e00 Mon Sep 17 00:00:00 2001 From: Valerio Donati Date: Fri, 16 Oct 2015 16:12:26 +0200 Subject: [PATCH 4/4] fix(dropdownToggle): Added removeEventListener on destroy --- src/dropdownToggle/dropdownToggle.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dropdownToggle/dropdownToggle.js b/src/dropdownToggle/dropdownToggle.js index 0e2db96..0cf2a89 100644 --- a/src/dropdownToggle/dropdownToggle.js +++ b/src/dropdownToggle/dropdownToggle.js @@ -111,9 +111,9 @@ angular.module('mm.foundation.dropdownToggle', [ 'mm.foundation.position', 'mm.f scope.$watch('$location.path', function() { closeMenu(); }); element.on('click', onClick); - element.on('$destroy', function(resizeMenu) { + element.on('$destroy', function() { element.off('click', onClick); - $window.removeEventListener('resize', resizeMenu); + angular.element($window).off('resize', onClick); }); } };