我有两个不同的元素,一个是内容可编辑的 DIV 作为指令,您可以在其中输入一些 HTML,例如 img 标签,并且它将在按键时自动呈现。
其次,我有一个绑定(bind)到 ng-model 的文本区域,我还希望用户能够键入 HTML(主要是 img 标签),以便它自动呈现,但是,如果用户键入,我无法弄清楚这是否可行标记,然后按原样保存。
在文本区域上实现我想要的效果的最佳解决方案是什么?我是否必须制作一个指令,或者是否有一个更简单的解决方案,我可以利用它所绑定(bind)的 ng-model 变量。
最后一个问题,我是否需要担心任何安全隐患,以便安全地处理输入? IE。我不希望人们把脚本标签放在那里,只放 img 标签、链接,也许还有一些格式化 HTML。我在渲染之前使用 $santize 服务来执行 $sanitize(htmlContent) 指令。
最佳答案
您应该使用Strict Contextual Escaping
做类似的事情:
<textarea ng-model="content"></textarea>
<div ng-bind-html="getSafe()"></div>
在你的 Controller 中:
$scope.getSafe = function(){
return $sce.trustAsHtml($scope.content);
}
关于javascript - 你可以在没有指令的情况下在 ngModel 上动态渲染 HTML 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26632392/