ng-bind-html with angular-translate 呈现文本而不是 HTML 标签

ng-bind-html with angular-translate renders text instead of HTML tag

我又回到了一个旧的 AngularJS 项目 (1.7.2) 上 angular-translate 并且我正在努力 ng-bind-html.

在我的 HTML 我写了这个

<span ng-bind-html="'LEFT_PANEL.VISITED_AFTER' | translate"></span>

我期待的结果是

<span>Visited <strong>after</strong> this date. </span>

我的翻译文件是:

"VISITED_AFTER": "Visited <strong>after</strong> this date"

我实际得到的是:

<span ng-bind-html="'LEFT_PANEL.VISITED_BEFORE' | translate" class="ng-binding ng-scope">
Visited &lt;strong&gt;before&lt;/strong&gt; this date
</span>

我做错了什么?

(是的,我的模块中有 ngSanitize

谢谢

可能与 this 重复。

似乎与HTML解码有关。 添加此功能:

function decodeHtml(html) {
  var txt = document.createElement("textarea");
  txt.innerHTML = html;
  return txt.value;
}

并在打印的内容周围加上:decodeHtml(...)

其实就看这个plunkr

NgTranslate 正在使用它自己的 Sanitizer (Docs)

要全局更改清理策略,请使用 $translateProvider.useSanitizeValueStrategy("STRATEGY"); 如果您只想对此元素使用不同的策略,请使用属性 translate-sanitize-strategy