diff --git a/src/dropdownToggle/dropdownToggle.js b/src/dropdownToggle/dropdownToggle.js index cbfab6efea..5a1510d7f9 100644 --- a/src/dropdownToggle/dropdownToggle.js +++ b/src/dropdownToggle/dropdownToggle.js @@ -12,13 +12,13 @@ */ -angular.module('ui.bootstrap.dropdownToggle', []).directive('dropdownToggle', ['$document', '$location', function ($document, $location) { +angular.module('ui.bootstrap.dropdownToggle', []).directive('dropdownToggle', ['$document', function ($document) { var openElement = null, closeMenu = angular.noop; return { restrict: 'CA', link: function(scope, element, attrs) { - scope.$watch('$location.path', function() { closeMenu(); }); + scope.$on('$locationChangeSuccess', function() { closeMenu(); }); element.parent().bind('click', function() { closeMenu(); }); element.bind('click', function (event) { diff --git a/src/dropdownToggle/test/dropdownToggle.spec.js b/src/dropdownToggle/test/dropdownToggle.spec.js index ae5b154e99..31fc7b0b9a 100644 --- a/src/dropdownToggle/test/dropdownToggle.spec.js +++ b/src/dropdownToggle/test/dropdownToggle.spec.js @@ -50,7 +50,8 @@ describe('dropdownToggle', function() { it('should close on $location change', function() { var elm = dropdown(); elm.find('a').click(); - $location.path('/foo'); + expect(elm.hasClass('open')).toBe(true); + $rootScope.$broadcast('$locationChangeSuccess'); $rootScope.$apply(); expect(elm.hasClass('open')).toBe(false); });