gpt4 book ai didi

javascript - 为什么这不显示 HTML

转载 作者:行者123 更新时间:2023-11-29 19:12:21 25 4
gpt4 key购买 nike

在我的 Angular 应用程序中,在我检索的数据中,有一些文本可能包含换行符、链接和我需要转换为 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 文档,但我一定遗漏了一些东西,因为我仍然不太明白 trustAs() 是什么做...

它是否应该返回一种带有可以安全解释的代码的字符串?或者它应该说 Angular “这个字符串是安全的,如果你在 data-ng-bind-html 属性中看到它,就好像显示它一样!”

最佳答案

ngBindHtml 的正确用法是:

<p data-ng-bind-html="textToHTML(company.description)"></p>

关于javascript - 为什么这不显示 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37885285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com