Search code examples
angularjspopover

How to hide the bs-popover based on events


I am using bs-popover to display my contents on click(as a menu) in angularjs. But I need to hide this popover-menu when I click somewhere in the browser window. I want it to be dismissed on that type of event. How can I do that?


Solution

  • You need to write directive for this.

    yourApp.directive('bndocumentclick',
     function($document,$rootScope,$timeout) {
      return {
        restrict: 'EA',
         link : function(scope, element, attrs) {
            $document.on("click", function(ev) {
               // Do stuff here to remove your popover.
            }
         }
     }
    });
    

    HTML

    <body bndocumentclick>
    

    And

    <div bs-popover ng-click="$event.stopPropagation()">
    

    You need to use because you would not like to close your popover whenever user clicks inside popover.