Angularjs Angular使用$sce允许一些html,而不允许所有html(仅允许我的html)

Angularjs Angular使用$sce允许一些html,而不允许所有html(仅允许我的html),angularjs,Angularjs,我有一个过滤器,可以添加一些html(将用户解析到href)。我在用户输入的文本上运行它(用户的“post”)。然后使用nghtmlbind={{post.text | parseUsers}} 这是过滤代码 .filter('parseUsers', function($sce){ return function(input, scope){ if (input !== null && input !== undefined){

我有一个过滤器,可以添加一些html(将用户解析到href)。我在用户输入的文本上运行它(用户的“post”)。然后使用
nghtmlbind={{post.text | parseUsers}}

这是过滤代码

.filter('parseUsers', function($sce){
        return function(input, scope){
            if (input !== null && input !== undefined){
                var result, personPattern, personLinkTpl, userLink,personName, personLink;
                result = input;
                personPattern = /@[a-zA-Z\allowd_]+/gi;
                personLinkTpl = '<a href=\'#/users/%USER_ID%/\'>%USER%</a>';

                personMentions = input.match(personPattern);
                if (personMentions != null && personMentions.length > 0) {

                    for (var j = 0; j < personMentions.length; j++) {
                        personName = personMentions[j];

                        personLink = personName.replace('@', '').toLowerCase();
                        userLink = personLinkTpl.replace(/%USER_ID%/, personLink).replace(/%USER%/, personName);
                        result = result.replace(personName, userLink);
                    }
                }
                return $sce.trustAsHtml(result);
            }
        };
    })
.filter('parseUsers',函数($sce){
返回函数(输入、范围){
if(输入!==null&&input!==未定义){
var结果、personPattern、personLinkTpl、userLink、personName、personLink;
结果=输入;
personPattern=/@[a-zA-Z\allowd_uz]+/gi;
personLinkTpl='';
personments=input.match(personPattern);
if(personments!=null&&personments.length>0){
对于(var j=0;j
一切正常,但这意味着我关闭了这个html上的ng sanitize服务。所以我可以发布
警报('hey')
,它会起作用

如何将信任仅分配给添加的html或特定的正则表达式而不是所有内容?或者我应该在开始解析输入之前对其进行清理?如何使用$sce实现这一点


谢谢

你现在找到解决办法了吗?如果是,请邮寄