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 <strong>before</strong> 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
我又回到了一个旧的 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 <strong>before</strong> 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