我试图通过创建自定义popover类来覆盖现有的类型来改变Bootstrap UI popover的背景颜色(例如popover1
,popover2
等,而不是{ {1}})。我知道这适用于vanilla Bootstrap popovers(这里是fiddle,但它似乎不适用于Bootstrap UI popovers)。
当我将相同的方法应用于Bootstrap UI popover时,它只显示一个很小的空白弹出窗口。到目前为止,我所做的只是改变
popover
到
<a class="btn btn-primary popover-container" id="popover" data-toggle="popover" data-placement="right" data-container="body" rel="log-popover">Log level</a>
日志级别-template.html
<a class="btn btn-primary popover-container" popover-placement="right" popover-template="'partials/loglevel-template.html'" popover-trigger="click">Log level</a>
当我删除<div class="popover1">
<div class="arrow"></div>
<div class="popover-content">
<p>some content</p>
</div>
</div>
课程时,它就可以了,只有弹出窗口才能显示。
我更喜欢使用Bootstrap UI popovers,因为你不必在jQuery中使用任何硬编码模板tomfoolery(实际上你根本不必编写任何jQuery)。我无法弄清楚如何更改Bootstrap UI popover的背景颜色。在我走下兔洞之前,我想知道是否有其他人已经实现了这一点,或者是否有一个简单的修复(也许Bootstrap UI popovers使用一组不同于vanilla popovers的类)。如果它是覆盖一些CSS类的问题,那将是梦想。
答案 0 :(得分:3)
遗憾的是,在UI Bootstrap文档中没有记录这一点,我(也不幸的是)花了几个小时来找到这个非常简单的解决方案,但希望这会节省一些其他人的时间。您可以将popover-class
属性添加到放置uib-popover
指令的元素,然后相应地设置弹出窗口的样式。有关详细信息,请参阅下面的代码段:
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('PopoverDemoCtrl', function ($scope, $sce) {
$scope.dynamicPopover = {
content: 'Hello, World!',
templateUrl: 'myPopoverTemplate.html',
title: 'Title'
};
});
&#13;
.trigger-popover-button {
margin: 25% 0 0 10%;
}
.custom-dynamic-popover-class {
color: red;
}
.custom-dynamic-popover-class > .popover-inner > .popover-title {
background: yellow;
}
.custom-dynamic-popover-class > .popover-inner > .popover-content {
background: blue;
}
&#13;
<!doctype html>
<html ng-app="ui.bootstrap.demo">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-animate.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-1.3.3.js"></script>
<script src="example.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div ng-controller="PopoverDemoCtrl">
<button uib-popover-template="dynamicPopover.templateUrl"
popover-title="{{dynamicPopover.title}}"
popover-class="custom-dynamic-popover-class"
type="button"
class="btn btn-default trigger-popover-button">
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>
</div>
</body>
</html>
&#13;