结合角度滤波器

时间:2014-05-07 03:33:25

标签: javascript angularjs

我想要字符串:

a)自动链接网址(linky)

b)将新行转换为< br>

c)除了链接和新行之外的所有其他html

i.e. - "A\nB\n\C\nhttp://www.angularjs.org<p>Foo</p>" becomes "A<br/>B<br/>C<br/><a href='http://www.angularjs.org'>http://www.angularjs.org</a>Foo"

filter('newlines', function() {
    return function(text) {
        return text.replace(/\n/g, '<br/>');
    }
})

filter('unsafe', function($sce) {
    return function(val) {
        return $sce.trustAsHtml(val);
    };
})

filter('noHTML', function() {
    return function(text) {
        if(text == null){
            return "";
        }
        return text.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;');
    }
})

<span ng-bind-html="p.body | noHTML | newlines | linky | unsafe"></span>

生成除了正确输出中断之外的所有内容 - 这些内容将呈现为文本

0 个答案:

没有答案