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

Can you render HTML dynamically on ngModel without a directive?

本文关键字:动态 HTML ngModel 情况下 指令      更新时间:2023-09-26

我有两个不同的元素,一个是作为指令的内容可编辑div,您可以在其中输入一些HTML,如img标记,它将在按键时自动呈现。

其次,我有一个绑定到ng模型的文本区域,在那里我还希望用户能够键入HTML,主要是img标签,这样它就会自动呈现。然而,我不知道这是否可能,如果用户键入标签,那么它就会按原样保存。

在文本区域实现我想要的内容的最佳解决方案是什么?我必须制作一个directie吗?或者有没有一个更简单的解决方案,我可以利用它绑定的ng模型变量。

最后一个问题是,为了安全地处理输入,我是否需要担心任何安全隐患?也就是说,我不希望人们把脚本标签放在那里,只有img标签,链接,也许还有一些格式化HTML。在呈现之前,我使用$sanize服务执行$sanize(htmlContent)指令。

是否应该使用严格上下文转义

做一些类似的事情:

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

在您的控制器中:

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