JSONで提供されたHTMLを解析しないAngularで少し奇妙な時間を過ごしています。JSON から文字列を取得してページに出力する ng-bind-html-unsafe ディレクティブを使用していますが、html はブラウザーによって解析されていません。
angularjs V1.1.5 を使用していますが、古いバージョンも試しました。
私のバインディングタグは次のようになります:
<div class="announcement-wrapper" ng-repeat="announcement in announcements" id="{{announcement.announcementId}}">
<p ng-bind-html-unsafe="announcement.content"></p>
</div>
バインディングをフィードしている JSON は次のとおりです。
{
"userId": "s123456",
"responseCode": "OK",
"responseMessage": "",
"timeStamp": 1371778685560,
"announcements": [
{
"announcementId": 1518,
"title": "Daves second announcement",
"content": "<p>Announcement for Chad</p>",
"releaseDate": "13 June 2013",
"important": false,
"read": true
},
{
"announcementId": 1511,
"title": "Onshore HE and TAFE Announcement",
"content": "<p>This announcement is only for Onshore HE and TAFE persons onshore.</p><p>High Priority.</p>",
"releaseDate": "04 June 2013",
"important": false,
"read": true
}
]
}
何が起こっているかというと、エンコードされた文字がページに生成されているということです。実際の段落タグとして出力するためにブラウザによって解析されていないだけです。例えば。2 番目のアナウンスは次のようにページに出力されています。
<p>This announcement is only for Onshore HE and TAFE persons onshore.</p><p>High Priority.</p>
ng-bind-html ディレクティブも使用してみましたが、サニタイズ依存関係が設定されていますが、どちらでも機能しません。間違いなく小さなものですが、見るには新鮮な目が必要です...
前もって感謝します!