#angularjs #twitter-bootstrap
#angularjs #twitter-bootstrap
Вопрос:
Я пытаюсь использовать HTML для оформления заголовка во всплывающем окне в angular bootrap, но он отображается как обычный текст
Поскольку тело всплывающего окна может содержать HTML-стиль, я подумал, что это сработает
<!doctype html>
<html ng-app="popover.title.html">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-animate.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-sanitize.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.2.0.js"></script>
<script src="example.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<script type="text/javascript">
angular.module('popover.title.html', ['ngAnimate', 'ngSanitize', 'ui.bootstrap']);
angular.module('popover.title.html').controller('htmlTitleCtrl', function ($scope, $sce) {
$scope.htmlPopover = $sce.trustAsHtml('<b style="color: red">I can</b> have <div class="label label-success">HTML</div> content');
});
</script>
<div ng-controller="htmlTitleCtrl">
<div style="padding-top: 15em; padding-left: 7em;">
<button uib-popover-html="htmlPopover" popover-title="This is in <span style='color:red;'>red</span>" class="btn btn-default">HTML Popover</button>
</div>
</div>
</body>
</html>
Запуск plunkr:https://plnkr.co/edit/A1qwqnxOZwLCs05ePS38?p=preview
Возможно ли корректное отображение цветов в заголовке?
Ответ №1:
Заголовок используемого всплывающего окна, ng-bind
который задает значение элемента title textContent
(https://github.com/angular-ui/bootstrap/blob/master/template/popover/popover-html.html#L4, https://github.com/angular/angular.js/blob/master/src/ng/directive/ngBind.js#L63 ). Это означает, что HTML-код в заголовке не будет отображаться как HTML.
Однако вы можете использовать CSS для оформления заголовка всплывающего окна.