在AngularJS指令中转义HTML文本

前端之家收集整理的这篇文章主要介绍了在AngularJS指令中转义HTML文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有一个角度的JS命令,将HTML文本转义?我正在处理一个自定义指令,并且需要转义它生成的一些输出

在内部,AngularJS sanitzer使用encodeEntities功能,但不会暴露它。我知道我可以复制这个功能,但似乎应该有一个标准的方式来做到这一点。

用例:我有一个自定义的指令,它进行语言本地化。该指令使用数据文件中的键查找来查找语言文本。在某些情况下,此文本允许包含HTML,和/或该指令生成HTML以改进生成的视觉格式。此外,该指令将Angular表达式作为参数,并将其用作字符串中令牌的替换。我需要对这些参数进行编码,因为它们可能不是HTML安全的。

该指令被称为属性,例如i18n-html =’welcome_text_html,11,user.name’。该指令然后按照描述格式化字符串,并使用element.html来更新DOM节点。

这个答案是关于转义,而不是清理HTML。有两种方法

>如@maniekq所提到的,如果您可以在DOM上工作,请执行以下操作:

element.text( scope.myValue );

>从this answer,您可以使用这个code from mustache.js,例如创建一个角度过滤器:

angular.module('myModule').filter('escapeHtml',function () {

    var entityMap = {
        "&": "&amp;","<": "&lt;",">": "&gt;",'"': '&quot;',"'": '&#39;',"/": '&#x2F;'
    };

    return function(str) {
        return String(str).replace(/[&<>"'\/]/g,function (s) {
            return entityMap[s];
        });
    }
});
原文链接:https://www.f2er.com/angularjs/145026.html

猜你在找的Angularjs相关文章