Angularjs 使用ng sanitize'绑定html;作为字符串的linky输出标记
如果我尝试将ng sanitize的Angularjs 使用ng sanitize'绑定html;作为字符串的linky输出标记,angularjs,ng-bind-html,ngsanitize,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! 好吧,这是粗体的,但这应该成为链接http://www.example.com 让我们测试一下! 对于一个将链接转换为html链接,但没有粗体文本的用户,它将作为包含标记的文本
linky
过滤器与ng bind html
指令一起使用,它将转换初始字符串
Well, <b>this is bold</b>, but this should become link http://www.example.com Lets test it!
好吧,这是粗体的,但这应该成为链接http://www.example.com 让我们测试一下!
对于一个将链接转换为html链接,但没有粗体文本的用户,它将作为包含标记的文本输出
这是
我的问题是,如果最初我有一个字符串,其中一些文本被标记和看起来像链接的文本包围,那么如何获得粗体文本和普通html链接的结果??
您可以编写一个自定义过滤器来执行linky
的工作,并将标记放回。。。(这可能不是超级健壮的,我也不是正则表达式的高手,但如果它能满足所有需要,那么它就能完成任务。)
module.filter('linkyWithHtml',函数($filter){
返回函数(值){
var linked=$filter('linky')(值);
var replaced=linked.replace(/\/g,'>')。replace(/\/g,'为什么不用标记包装链接?因为我现在知道有一个链接。假设初始字符串是给定的。@Alec:我的答案似乎很好:
module.filter('linkyWithHtml', function($filter) {
return function(value) {
var linked = $filter('linky')(value);
var replaced = linked.replace(/\>/g, '>').replace(/\</g, '<');
return replaced;
};
});
<div ng-bind-html="expr | linkyWithHtml"></div>