2015-10-19 64 views
1

如果我嘗試使用這兩種NG-的sanitize的linky濾波器ng-bind-html指令,它會改變初始字符串NG綁定,HTML與NG-的sanitize」 linky輸出變量作爲字符串

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

於具有鏈接轉化到html鏈接,但沒有粗體文​​本 - 它將作爲文本中包含標籤輸出。

這裏的[DEMO]

我的問題是我怎麼在結果得到兩個粗體字和正常的HTML鏈接,如果initialy我一樣有一些文字被包圍的標籤和文字,看起來像一個鏈接字符串?

+0

你爲什麼不換行鏈路與標籤? – demkalkov

+2

因爲我現在知道有一個鏈接。假設給定的初始字符串。 – kaytrance

回答

6

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> 
+1

偉大的解決方案! – kaytrance

+0

如果我傳入類似'我<3 cheezburger http:// example.com'? – Alec

+0

@Alec:我的答案似乎在做這個例子罰款:http://plnkr.co/edit/a50tfowC51DWeqLgIc5A?p=preview –