ng-bind-html とフィルターを使用して、div.testData で受け取った html コンテンツを表示しようとしています。アプリには既に「ngSanitize」が含まれています。しかし、どういうわけか、部分的にしか機能しません。フィルターが適用されていないようです。ローカル ファイルを作成してチェックすると正常に動作しますが、プロジェクト環境で同じコードを使用すると動作しません。
サンプルデータ:
$scope.userProfile.Information = '<p>Hello, this is sample data to test html.</p>';
表示される出力は次のとおりです。
'<p>Hello, this is sample data to test html.</p>'
望ましい出力は次のとおりです。
'Hello, this is sample data to test html.'
これを修正するのを手伝ってください。
HTML:
<div ng-app="myApp" ng-controller="myCtrl">
<div class="testData" ng-bind-html= "userProfile.Information | to_trusted"></div>
フィルター:
app.filter('to_trusted', ['$sce', function($sce){
return function(text) {
var doc = new DOMParser().parseFromString(text, "text/html");
var rval= doc.documentElement.textContent;
//console.log(rval);
return $sce.trustAsHtml(rval);
};
}]);