你可以在没有指令的情况下在ngModel上动态呈现HTML吗?

时间:2014-10-29 14:03:38

标签: javascript angularjs sanitization ngsanitize

我有两个不同的元素,一个是内容可编辑的DIV作为指令,你可以在其中输入一些HTML,例如img标签,它会在按键上自动呈现。

其次我有一个textarea绑定到ng-model,我也希望用户能够键入HTML主要是img标签,所以它会自动呈现,但是,我无法弄清楚这是否可行,如果用户输入标签,然后按原样保存。

在textarea上实现我想要的最佳解决方案是什么?我是否必须做直接指导,或者是否有更简单的解决方案,我可以利用它所绑定的ng-model变量。

最后一个问题,我是否需要担心安全问题,以便我安全地处理输入?即我不希望人们在那里放置脚本标签,只是img标签,链接和一些HTML格式。我在渲染之前使用$ santize服务执行$ sanitize(htmlContent)指令。

1 个答案:

答案 0 :(得分:1)

您可以使用Strict Contextual Escaping

做类似的事情:

<textarea ng-model="content"></textarea>
<div ng-bind-html="getSafe()"></div>

在您的控制器中:

$scope.getSafe = function(){
    return $sce.trustAsHtml($scope.content);
}