ng-bind-html与ng-sanitize' linky输出标签作为字符串

时间:2015-10-19 10:23:07

标签: angularjs ng-bind-html ngsanitize

如果我尝试同时使用ng-sanitize的linky过滤器和ng-bind-html指令,它将转换初始字符串

Well, <b>this is bold</b>, but this should become link http://www.example.com Lets test it!

将链接转换为html链接,但没有粗体文​​本 - 它将作为包含标记的文本输出。

此处[DEMO]

我的问题是我如何获得粗体文本和普通html链接的结果如果初始我只是作为字符串,其中一些文本被标签和看起来像链接的文本所包围?

1 个答案:

答案 0 :(得分:8)

Plunkr Demo

您可以编写一个自定义过滤器来完成linky的工作并将标签重新放入...(这可能不是非常强大,我不是最好的正则表达式,但如果它有效对于你需要它的一切,然后它就完成了工作。)

module.filter('linkyWithHtml', function($filter) {
  return function(value) {
    var linked = $filter('linky')(value);
    var replaced = linked.replace(/\&gt;/g, '>').replace(/\&lt;/g, '<');
    return replaced;
  };
});

用法:

<div ng-bind-html="expr | linkyWithHtml"></div>