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属性で見れば安全です!」と言っているのでしょうか? ngBindHtmlの