在我的Angular应用程序中,我有一些数据需要包含html标记,并且我在确保它被转义时遇到了一些问题。
$scope.groups = [
{
'name': 'min',
'item': '<h1>This is some awsome H1</h1><ul><li>yup></li></ul>',
},
{
'name': 'min',
'item': '<h1>This is some awsome H1</h1><ul><li>yup></li></ul>',
},
{
'name': 'min',
'item': '<h1>This is some awsome H1</h1><ul><li>yup></li></ul>',
},
{
'name': 'min',
'item': '<h1>This is some awsome H1</h1><ul><li>yup></li></ul>',
}
];
这是我的html
<div ng-repeat="group in groups">
<li>{{group.name}}</li>
<li>{{group.item}}</li>
</div>
我试着只包括angular的一些ng-sanitize
,但我只看到了它是单个对象而不是数组的例子。
参见此处
我试图将ng-bind-html="groups"
添加到主div
,但我的数据显示为[object Object]
。
有什么想法吗?感谢您的帮助!
ngBindHtml
指令接受一个包含HTML的字符串,并且应该直接在应该呈现该HTML字符串的标记上使用。与其在容器上使用,不如直接在第二个<li>
上使用,如下所示:
<div ng-repeat="group in groups">
<li>{{group.name}}</li>
<li ng-bind-html="group.item"></li>
</div>
@javaCoin创建了一个Plunker来说明这一点;我们不要浪费它,把它粘贴在这里:http://plnkr.co/edit/PFaxHqpyQvWqln5ABHRc?p=preview
ng-bind-html在您想要代码的特定项目上。
因此,您的示例变成:
<div ng-repeat="group in groups">
<li>{{group.name}}</li>
<li ng-bind-html="group.item"></li>
</div>
http://plnkr.co/edit/CO5WUCgBnOEJrVoKKrEE?p=preview显示了一个快速而肮脏的例子。