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属性中显示它就好像!”