       return
 
     scope.$watch 'isOpen', (isOpen, wasOpen) ->
+      anchors = self.$element.find('a')
+
       if isOpen
         self.$element.attr(dropDownOpen, '')
         scope.focusToggleElement()
         dropdownService.open scope
+
+        if anchors.length
+          scope.forceClose = true
+          _.each anchors, (anchor) ->
+            angular.element(anchor).on 'click', (evt) ->
+              dropdownService.close(scope)
+
       else
         self.$element.removeAttr(dropDownOpen)
-        dropdownService.close scope
+        dropdownService.close(scope)
+
       setIsOpen $scope, isOpen
       if angular.isDefined(isOpen) and isOpen isnt wasOpen
         toggleInvoker $scope,


    closeDropdown = (evt) ->
      toggleElement = openScope.getToggleElement()

      if evt and toggleElement?[0].contains(evt.target) or
      evt?.target.nodeName.toLowerCase() is 'input' # Don't close if the drop down has an input interaction
        return

      dropdownScope.forceClose

        if dropdownScope.forceClose
          openScope.isOpen = false if openScope

        openScope = null
        $document.unbind 'click', closeDropdown
