UI-Bootstrap Popover离开屏幕

Ala*_*dic 9 twitter-bootstrap angular-ui-bootstrap twitter-bootstrap-tooltip

我正在使用UI Bootstrap(AngularJS)中的Ui-bootstrap popover .

页面边框的popover似乎离开了屏幕......

是否有更好的方法来定位弹出窗口 - 所以它可以留在屏幕内?

你可以看到popover被削减了......

在此输入图像描述

angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('PopoverDemoCtrl', function ($scope) {
  $scope.dynamicPopover = {
    content: 'Hello, World!',
    templateUrl: 'myPopoverTemplate.html',
    title: 'Title'
  };
});
Run Code Online (Sandbox Code Playgroud)
<!doctype html>
<html ng-app="ui.bootstrap.demo">
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-animate.js"></script>
    <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>
    <script src="example.js"></script>
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>

    <div ng-controller="PopoverDemoCtrl">
      <h4>Dynamic</h4>
      <div class="form-group">
        <label>Popup Text:</label>
        <input type="text" ng-model="dynamicPopover.content" class="form-control">
      </div>
      <div class="form-group">
        <label>Popup Title:</label>
        <input type="text" ng-model="dynamicPopover.title" class="form-control">
      </div>
      <div class="form-group">
        <label>Popup Template:</label>
        <input type="text" ng-model="dynamicPopover.templateUrl" class="form-control">
      </div>
      <button uib-popover="{{dynamicPopover.content}}" popover-title="{{dynamicPopover.title}}" type="button" class="btn btn-default">Dynamic Popover</button>

      <button uib-popover-template="dynamicPopover.templateUrl" popover-title="{{dynamicPopover.title}}" type="button" class="btn btn-default">Popover With Template</button>

      <script type="text/ng-template" id="myPopoverTemplate.html">
        <div>{{dynamicPopover.content}}</div>
        <div class="form-group">
          <label>Popup Title:</label>
          <input type="text" ng-model="dynamicPopover.title" class="form-control">
        </div>
      </script>
      <hr />
      <h4>Positional</h4>
      <button popover-placement="top" uib-popover="On the Top!" type="button" class="btn btn-default">Top</button>
      <button popover-placement="left" uib-popover="On the Left!" type="button" class="btn btn-default">Left</button>
      <button popover-placement="right" uib-popover="On the Right!" type="button" class="btn btn-default">Right</button>
      <button popover-placement="bottom" uib-popover="On the Bottom!" type="button" class="btn btn-default">Bottom</button>

      <hr />
      <h4>Triggers</h4>
      <p>
        <button uib-popover="I appeared on mouse enter!" popover-trigger="mouseenter" type="button" class="btn btn-default">Mouseenter</button>
      </p>
      <input type="text" value="Click me!" uib-popover="I appeared on focus! Click away and I'll vanish..."  popover-trigger="focus" class="form-control">

      <hr />
      <h4>Other</h4>
      <button popover-animation="true" uib-popover="I fade in and out!" type="button" class="btn btn-default">fading</button>
      <button uib-popover="I have a title!" popover-title="The title." type="button" class="btn btn-default">title</button>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

http://plnkr.co/edit/QQxfc4BlHceJwt8zulKu?p=preview

Tim*_*Tim 2

正如其他人在评论中所说,UI Bootstrap 不支持自动定位弹出窗口,而且将来似乎也不太可能支持。

也就是说,您可以执行以下任一操作来提供帮助:

  1. 确保您使用的是容器、行和列...这将为您在 Boostrap 中提供“正确”的填充,这将有助于确保(尽管不能保证)弹出窗口不会离开屏幕。

  2. 如果您的元素位于左侧,请始终将工具提示放在右侧。同样,这应该有所帮助,但不能保证。

  3. 使用支持Bootstrap 4的 UI Bootstrap 分支,它具有更好的弹出窗口自动定位功能(以及其他改进)。这是一个似乎维护得很好的选项。