这是html代码:
<div id="notifications-feed" class="content" data-ng-controller="feedContentCtrl">
<div data-ng-repeat="entry in cmsData.rss.channel.item">
<div data-ng-bind-html="entry.description"></div>
</div>
</div>
以下是从URL中读取的JSON:
{
"rss":
{
"channel":
{
"description": "",
"item":
{
"description": "blah blah blah",
"link": "http://foo.bar",
"pubDate": "Friday, February 21, 2014 - 17:52",
"title": "Server Maintenance"
},
"language": "en",
"link": "http://foo.bar/alerts",
"title": "<a href='/news'>News & Updates<\/a>"
},
}}
如果有多个“item”元素,这样可以正常工作。但是,在这种情况下,只有一个没有显示出来。如果我只是说:
<div data-ng-bind="cmsData.rss.channel.item.desciption"></div>
然后它出现了。当只有一个时,ng-repeat不起作用吗?
修改:通过将代码更改为:
来修复<div data-ng-repeat="(items, item) in cmsData.rss.channel">
<div data-ng-bind-html="item.description"></div>
</div>
答案 0 :(得分:4)
如评论中所述,ng-repeat
你的方式是数组。对对象和属性使用以下语法:
(k, v) in cmsData.rss.channel.item
这将迭代cmsData.rss.channel.item
答案 1 :(得分:1)
原因是因为在JSON对象中,“item”不是数组。
修复:
{
"rss":
{
"channel":
{
"description": "",
"item":
[{
"description": "blah blah blah",
"link": "http://foo.bar",
"pubDate": "Friday, February 21, 2014 - 17:52",
"title": "Server Maintenance"
}],
"language": "en",
"link": "http://foo.bar/alerts",
"title": "<a href='/news'>News & Updates<\/a>"
},
}}
答案 2 :(得分:0)
您正在引用一个对象而不是一个数组,请检查在ngRepeat参数中使用对象的文档。
http://docs.angularjs.org/api/ng/directive/ngRepeat
您需要data-ng-repeat="(key, value) in cmsData.rss.channel.item
然后你可以使用<div data-ng-bind-html="value"></div>
列出所有项目的属性。