我有一点奇怪的时间,角度不解析在JSON中提供的HTML。 我正在使用ng-bind-html-unsafe指令,该指令从JSON获取字符串并将其输出到页面上,但浏览器不会解析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
}
]
}
正在发生的事情是编码的字符正在页面上生成,只是它们没有被浏览器解析为输出为实际的段落标记。例如。第二个公告正在输出到页面上
<p>This announcement is only for Onshore HE and TAFE persons onshore.</p><p>High Priority.</p>
我也尝试过使用ng-bind-html指令并且具有sanitize依赖性,并且它们都不兼容。毫无疑问,这是一个小小的,但我只需要一双新眼睛来看看......
提前致谢!
答案 0 :(得分:2)
这是因为您使用<
和>
来表示括号的打开和关闭。
它们实际上将被用作小于和大于符号而不是打开和关闭标签。
您需要将announcements.content
替换为小于和大于符号,如下所示:
...
"content": "<p>Announcement for Chad</p>",
...
编辑:查看可能的所有HTML代码的this列表。您正在使用“&lt;”的HTML代码和“&gt;”因此,不是打开和关闭标签,而是获得该角色。