有没有一个角度的JS命令,将HTML文本转义?我正在处理一个自定义指令,并且需要转义它生成的一些输出。
在内部,AngularJS sanitzer使用encodeEntities功能,但不会暴露它。我知道我可以复制这个功能,但似乎应该有一个标准的方式来做到这一点。
用例:我有一个自定义的指令,它进行语言本地化。该指令使用数据文件中的键查找来查找语言文本。在某些情况下,此文本允许包含HTML,和/或该指令生成HTML以改进生成的视觉格式。此外,该指令将Angular表达式作为参数,并将其用作字符串中令牌的替换。我需要对这些参数进行编码,因为它们可能不是HTML安全的。
该指令被称为属性,例如i18n-html =’welcome_text_html,11,user.name’。该指令然后按照描述格式化字符串,并使用element.html来更新DOM节点。
这个答案是关于转义,而不是清理HTML。有两种方法:
原文链接:https://www.f2er.com/angularjs/145026.html>如@maniekq所提到的,如果您可以在DOM上工作,请执行以下操作:
element.text( scope.myValue );
>从this answer,您可以使用这个code from mustache.js,例如创建一个角度过滤器:
angular.module('myModule').filter('escapeHtml',function () { var entityMap = { "&": "&","<": "<",">": ">",'"': '"',"'": ''',"/": '/' }; return function(str) { return String(str).replace(/[&<>"'\/]/g,function (s) { return entityMap[s]; }); } });