2016-06-17 17 views
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の

答えて

3

正しい使用法は次のようになります。

<p data-ng-bind-html="textToHTML(company.description)"></p> 
関連する問題