如何在文本消毒后应用过滤器(AngularJS)

时间:2014-03-27 11:30:44

标签: javascript html angularjs chat

那么,我有什么:

  • 包含:) :( :\
  • 等微笑的文字
  • 使用img标记
  • 替换微笑的过滤器
  • DIV{{ message | smiles }}

如您所知,{{}}将所有html标签转换为html实体。

所以我得到:Message that contains smile <img src="/smile.gif">

我尝试使用ng-bind-html$sanitize,但它没有使用&#34; good&#34; html标签,例如<b><a>等......

我希望在清除smiles变量之后应用我的message过滤器。我不知道该怎么做。

EDIT1:

message变量包含&#34; here message with smiles :) :( :\&#34;

过滤器可以转换微笑&#39;到img标记:

angular.module('my.filters', [])
.filter('smiles', function () {
  return function (input) {
    return input.replace(/:\)/gi, '<img src="/images/smile.gif">');
  }
});

DIV元素:

<div>{{ message | smiles}}</div>

当我得到它时:

here message with smiles <img src="/images/smile.gif">

而非here message with smiles

1 个答案:

答案 0 :(得分:0)

您确定要在模块中注入ngSanitize并使用ng-bind-html吗?

这是一个有效的例子:http://plnkr.co/edit/IEovofjHDMleLZlb9AMJ?p=preview