ак добавить кнопку закрытия

Правильное решение, использующее новый атрибут popover-is-open, как указано ниже, позволяет использовать область видимости контроллера.

myPopoverCtrl, [$scope,
    function($scope) {
 
      // query popover
      $scope.myPopover = {
 
        isOpen: false,
 
        templateUrl: myPopoverTemplate.html,
 
        open: function open() {
          $scope.myPopover.isOpen = true;
          $scope.myPopover.data = Hello!;
        },
 
        close: function close() {
          $scope.myPopover.isOpen = false;
        }
      };
 
    }
 
  ]);
<body 
      ng-app="ui.bootstrap.demo" 
      class="container">
 
  <button 
          class="btn btn-danger" 
          ng-controller="myPopoverCtrl" 
          popover-template="myPopover.templateUrl" 
          popover-title="This is a popover" 
          popover-placement="bottom" 
          popover-is-open="myPopover.isOpen" 
          ng-click="myPopover.open()">Click me!</button>
 
  <script type="text/ng-template" 
          id="myPopoverTemplate.html">
    <h2 ng-bind="myPopover.data" />
    <button class="btn btn-success" 
            ng-click="myPopover.close()">Close me!</button>
 
  </script>
 
</body>

Простой хак. Это происходит на моем контроллере:

$scope.close = function(e) {
     el = angular.element(e.target).closest("td"); // `td` is the parent of my clickable
                                                   // element, in this case a `span`
     $timeout(function() { // need $timeout so we dont conflict with the digest loop
     el.children(":first").trigger(close); // couldnt select the `span` element directly
     });
 },