2
在我的角度應用程序中,我檢索的數據中,有一些文本可能包含換行符,鏈接和其他需要轉換爲HTML的東西。所以,我實現了這個功能「轉換」的字符串HTML:爲什麼這不顯示HTML
$scope.textToHTML = function(text){
if(!text){return "";}
var html = text.replace("\r\n", "<br>")// Windows line break
.replace("\n", "<br>")// Carriage Return
.replace("\r", "<br>")// Line feed
.replace("\t", "<span style=\"margin-left: 20px;\"></span>")
.replace("(https?:\\/\\/[^\\s]*)", "<a href=\"$1\" target=\"_blank\">$1</a>");
return $sce.trustAsHtml(html);
}
然後,我用它作爲這樣的: <p data-ng-bind-html="">{{textToHTML(company.description)}}</p>
。
當我刪除data-ng-bind-html
時,我看到了代碼(轉義),但使用它,我的<p>
總是空的。我閱讀Angular $ sce doc,但我必須缺少一些東西,因爲我還是不太明白trustAs()
做什麼...
它應該返回一種可以安全解釋的代碼的字符串嗎? 還是應該說角度「這個字符串是安全的,如果你看到它在data-ng-bind-html屬性中顯示它就好像!」