【问题标题】:angularjs: how to inject HTML code from controller modelangularjs:如何从控制器模型中注入 HTML 代码
【发布时间】:2014-06-08 10:56:00
【问题描述】:

我的控制器包含一个纯 HTML 代码的描述。 我希望将其注入到给定的标签中,以便根据它包含的标签进行渲染。

我尝试了以下方法,但 HTML 在属性中呈现,而我希望在标签本身中呈现。

<div ng-bind-html-unsafe="{{stage.description}}"></div>

【问题讨论】:

    标签: html angularjs code-injection


    【解决方案1】:

    去掉花括号。花括号只是模板标签。你想绑定实际的变量。

    <div ng-bind-html-unsafe="stage.description"></div>
    

    【讨论】:

      【解决方案2】:

      我不记得什么时候 AngularJS 不再允许这样做了。

      您需要做的是包含 AngularJS Sanitize 库。 您可以在此处下载 sanitize 库:https://code.angularjs.org/1.2.16/

      在你的模块中

      angular.module('myModule', ['ngSanitize'])
      

      在您的模板中

      <div ng-bind-html="stage.description"></div>
      

      【讨论】:

      • ng-bind-html-unsafe 在 v 1.2.0 中被弃用 github.com/angular/angular.js/blob/master/…
      • 感谢@EduardGamonal
      • 我确实包含了清理模块并切换到 ng-bind-html。我不明白的是 stage.description 内容导致错误如下:错误:[$parse:syntax] 语法错误:令牌“跨度”是表达式 [Coucou
        Coucou
        ] 从 [span>Coucou
        Coucou
        ] 开始。
      • 好的。我不得不去掉双花括号。
      • 你是对的@StéphanedeLuca 我有同样的问题,删除大括号修复了$parse:syntax 错误。我也不需要在当前的 Angular 1.3 中包含 ngSanitize 模块。没有它也能正常工作。
      猜你喜欢
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 2015-01-06
      • 1970-01-01
      • 2018-12-18
      相关资源
      最近更新 更多