9

我有一个带有状态通知的工具提示(http://angular-ui.github.io/bootstrap/),但是当这个通知太大时,它会超出屏幕限制。这是正在发生的事情的打印:

在此处输入图像描述

我在 angular ui 中找不到任何处理这个问题的属性。

提前致谢!

4

3 回答 3

3

此解决方案不使用 Angular-UI,仅使用 Angular 和 Bootstrap。不一定需要引导程序,只是稍微简化了过程:
http ://plnkr.co/edit/jLThSTrLUapAG8OLW44m?p=preview

在我继续之前,此示例的替代方法是将具有自动换行空白属性的 CSS 类添加到您的工具提示类。使用 Chrome 或 Firefox 的开发工具,检查元素,直到找到负责设置工具提示 ui 的类;然后将这些属性添加到您的 style.css 自定义 CSS 文档中。

现在,对于这个特定的解决方案,我们创建一个工具提示指令并允许它采用放置属性来确定定位

Angular 代码,我们在完成后销毁工具提示以防止内存泄漏:

var app = angular.module('test', []);

angular.module('test').directive('tooltip', function () {
           return {
              restrict: 'A',
              link: function (scope, element, attrs) {
                 $(element)
                         .attr('title', attrs.tooltip)
                         .tooltip({placement: attrs.placement});
                 scope.$on('$destroy', function() {
                    element.tooltip('destroy');
                 });
              }
           }
        }) 

CSS 代码,我们必须覆盖一些 Bootstrap 默认值:

.tooltip-inner {
   width: auto;
   min-width: 180px;
   background-color: #c0d3d2;
   color: #000000;
   font-weight: 600;
   margin: 0 5px 0 -5px;
   /*margin-left: -5px;*/
}

/* Make tooltips opaque */
.tooltip.in { opacity: 1.8; filter: alpha(opacity=100); }
/*Change tooltip arrow color for bottom placement*/
.tooltip.bottom .tooltip-arrow {
   top: 0;
   left: 50%;
   margin-left: -5px;
   border-bottom-color: #c0d3d2;
   border-width: 0 5px 5px;
}
于 2015-04-04T20:15:53.567 回答
3

我怀疑弹出框正在从它所在的容器中继承一些定位信息。尝试设置popover-append-to-body使其不再位于该容器中。

当前版本的 Angular UI 中存在一个错误,因此您实际上必须设置:

popover-append-to-body="true"

但是,这将在下一个版本中修复,因此您不需要 ="true" 部分,只需设置属性即可。

于 2015-12-21T21:27:40.887 回答
1

我必须做几件事才能使用uib-popover-template让我的弹出框“工作”

  1. 添加popover-append-to-body="true"属性。
    • 这会将 popover 附加到$body而不是父元素
  2. 添加popover-placement="auto top"属性。
    • 它将尝试显示顶部,否则尝试更用户友好的放置。
    • 我试过了,auto top-left但它似乎压缩了大量的文本。
  3. 将内容包装在一个<div style="max-height: 300px; overflow: auto;">
    • 这在容器上设置了一个边界,并且仅在必要时添加滚动。
于 2019-02-25T19:24:27.070 回答