使用输入标记和其他“不安全”元素在Angular(> 1.2)中注入HTML

时间:2014-12-19 20:45:29

标签: angularjs

我有一些我在JSON中获得的HTML,需要将其注入页面。我使用了$sce.trustAsHtml并将输出与ngBindHtml绑定在一起,但显然会删除<select><input>等标签,这些标签不安全。&#34;有没有办法告诉Angular我真的,实际上是否打算将我要求的HTML完全插入页面?

现在我只有像$scope.$watch('response.htmlBody', function(){$('#container').html($scope.response.htmlBody);}这样的东西,它似乎按预期工作但看起来像是一个非常糟糕的黑客。

在这种情况下,HTML没有特定于Angular的元素,因此我不必担心再次编译它。

1 个答案:

答案 0 :(得分:1)

$sce.trustAsHtmlng-bind-html应该无需删除<input><select>即可:

$scope.html = $sce.trustAsHtml(data);

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

plunker