【问题标题】:How to modify innerHTML by evaluating an angular expression如何通过评估角度表达式来修改 innerHTML
【发布时间】:2026-02-03 07:00:01
【问题描述】:

我正在尝试做这样的事情

<div id="{{item.id}}" ng-repeat="item in itemList">
    {{item.innerHTML}}
</div>

item.innerHTML 包含需要去那里的 html,但由于它是 dom 的一部分,所以它被替换为字符串。有没有办法让它替换innerHTML?

谢谢!

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    你需要使用 ngBindHtml :

    http://plnkr.co/edit/n1rLzgEZQoa2tJf0qnVZ?p=preview

    在控制器中:

    $scope.content = "<b>this is bold content</b>";
    

    html:

    <div ng-bind-html="content"></div>
    

    您需要以下模块:

    http://code.angularjs.org/1.0.3/angular-sanitize.js

    请务必将 ngSanitize 声明为模块依赖项,例如:

    var app = angular.module('angularjs-starter', ["ngSanitize"]);
    

    【讨论】:

    • 我试过这个,但它似乎不起作用。这就是我在 html
      。我错过了什么吗?
    • 据我所知,该示例有效:plnkr.co/edit/n1rLzgEZQoa2tJf0qnVZ?p=preview 你一定忘了做某事,也不要将 {{}} 放在 ng-bind-html 中,因为它是一个表达式。
    • 谢谢!那行得通。我以为您使用 {{}} 来评估表达式? docs.angularjs.org/guide/expression
    • @mpm 的回答有效!但提醒一下,不要忘记在您的应用程序中包含“angular-sanitize.js”。并且正如 mpm 提到的,不要忘记声明模块依赖关系。
    • Angular 4:要将 HTML 作为变量传递,您可以使用