我想知道是否可以在angularjs bootstrap tabset选项卡标题内编写html。我想在标题中添加一个svg。我已经在plunker中创建了一个快速片段来尝试演示我遇到的问题。
<tabset>
<tab heading="<span>hello</span><em>1</em>">One</tab>
<tab heading="Two">Two</tab>
<tab heading="Three">Three</tab>
</tabset>
http://plnkr.co/edit/qFsFGDNUIJj9nIF51ApU
任何想法?
谢谢
答案 0 :(得分:45)
Angular Bootstrap v0.14 introduced new prefixes。以下原始答案仍然适用,但您必须使用新的代码名称uib-tabset
,uib-tab
和uib-tab-heading
。
<uib-tabset>
<uib-tab>
<uib-tab-heading>
<span>hello</span><em>1</em>
</uib-tab-heading>
One
</uib-tab>
<uib-tab heading="Two">Two</uib-tab>
<uib-tab heading="Three">Three</uib-tab>
</uib-tabset>
如果您希望标题中包含HTML,则应使用tab-heading
元素中的tab
元素(如docs中的示例所示):
<tabset>
<tab>
<tab-heading>
<span>hello</span><em>1</em>
</tab-heading>
One
</tab>
<tab heading="Two">Two</tab>
<tab heading="Three">Three</tab>
</tabset>
更新了plunker here。
答案 1 :(得分:5)
对于 ui-bootstrap 之前的version 0.14.0
,已接受的答案是可以的,因为版本0.14.0
(2015.10.09)标签使用{{ 1}}前缀。
请参阅changelog
所以你必须用uib-
前缀
uib-
答案 2 :(得分:0)
[编辑] Taylor Buchanan的回答是正确答案!
查看tabs指令使用的模板,标题内容将被转义:https://github.com/angular-ui/bootstrap/blob/192768e109b5c4a50c7dcd320e09d05fedd4298a/template/tabs/tab.html#L2
所以你的标题中不可能使用html。
您可以通过重新定义标签模板来创建变通方法,如下所示:
angular.module("template/tabs/tab.html").run(["$templateCache", function($templateCache) {
$templateCache.put("template/tabs/tab.html",
"<li ng-class=\"{active: active, disabled: disabled}\">\n" +
" <a ng-click=\"select()\" tab-heading-transclude ng-bind-html=\"heading\"></a>\n" +
"</li>\n" +
"");
}]);
您还需要包含angular-sanitize.js以安全地绑定html内容。
答案 3 :(得分:0)
你可以给你的TAB标签一个id,然后使用jQuery来增加html ... tab id =“myid”....
然后 jQuery(“#myid”)。html(“ New Html ”)
答案 4 :(得分:-1)
<li heading="Status" class="ng-isolate-scope var" ng-model="(var = 'active: active')" >
<a href="/ibox">Status1</a>
</li>
<li heading="Status" class="ng-isolate-scope var" ng-model="var = 'active: active'">
<a href="/netapp">Status</a>
</li>
</tabset>