我正在尝试渲染一些不安全的HTML(基本上是带有一些内联样式的HTML代码段),并在我的视图中包含以下代码:
<div ng-repeat="snippet in snippets">
<div ng-bind-html="snippet.content"></div>
</div>
我的所有样式都被删除了......
我听说有人使用ngBindHtmlUnsafe,但是我找不到它的引用,只是简单地把 ng-bind-html-unsafe 都没有渲染。
任何帮助将不胜感激。
答案 0 :(得分:8)
AngularJs 1.2中删除了ng-bind-html-escape
。
为了达到同样的效果,我建议你创建一个信任资源的过滤器(你应该包含$sce module):
app.filter('unsafe', function($sce) {
return function(val) {
return $sce.trustAsHtml(val);
}; });
用法:
<ELEMENT ng-bind-html="htmlValue | unsafe"></ELEMENT>
您不应忘记将ngSanitize包含为应用依赖项:
angular.module('app', ['ngSanitize'])
干杯。
答案 1 :(得分:6)
您可以使用$sce.trustAsHtml
绕过它。见documentation
self.snippet.content = $sce.trustAsHtml('some html');