You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS中Popover无法识别HTML标签问题及代码示例

解决AngularJS Popover无法识别HTML标签的问题

我来帮你搞定这个问题!你遇到的核心问题是用错了popover的指令属性——popover="{{ data }}"会把内容当作纯文本渲染,自动转义所有HTML标签,所以哪怕你已经用$sce.trustAsHtml处理了字符串,也没法解析成预期的格式。

具体解决方案

你只需要把绑定纯文本的popover属性替换成专门用于HTML内容的popover-html(部分老版本AngularUI Bootstrap需要加uib-前缀,即uib-popover-html),并且注意不要用双大括号包裹变量,直接绑定即可:

第一步:保持控制器代码不变(你已经做对了HTML信任处理)

var popover = '<u>Hi</u>: Some message.<br><br>' + 
              '<u>New</u>: New msg.<br><br>' + 
              '<u>Next</u>: Next Data.<br><br>' + 
              '<u>Cancelled</u>: Remove service.<br><br>'; 
$scope.data = $sce.trustAsHtml(popover);

第二步:修改HTML中的popover指令

<th class="col-info hidden-xs text-left">
  Status 
  <span popover-placement="bottom" popover-html="data" popover-trigger="click" class="pull-right">
    <i class="fa fa-info-circle"></i>
  </span>
</th>

额外说明

  • popover-html(或uib-popover-html)是AngularUI Bootstrap专门为渲染HTML内容设计的指令,它会直接解析你通过$sce.trustAsHtml标记为安全的HTML字符串,不会转义标签。
  • 如果替换后还是不生效,检查你的AngularUI Bootstrap版本:0.14.x及以后的版本支持无uib-前缀的指令,更早的版本需要加上uib-前缀,也就是改成uib-popover-html="data"。

内容的提问来源于stack exchange,提问作者Saurav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:24:30