Javascript AngularJS ng重复不';如果只有一个元素,则无法工作
以下是html代码:Javascript AngularJS ng重复不';如果只有一个元素,则无法工作,javascript,angularjs,Javascript,Angularjs,以下是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 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>"
},
}}
{
“rss”:
{
“频道”:
{
“说明”:“,
“项目”:
{
“描述”:“废话废话”,
“链接”:http://foo.bar",
“发布日期”:“2014年2月21日星期五-17:52”,
“标题”:“服务器维护”
},
“语言”:“en”,
“链接”:http://foo.bar/alerts",
“标题”:“新闻和更新”
},
}}
如果有多个“item”元素,则此操作非常有效。但是,在这种情况下,只有一个,因此没有显示任何内容。如果我只是说:
<div data-ng-bind="cmsData.rss.channel.item.desciption"></div>
然后它出现了。只有一个时ng重复不起作用吗
编辑:通过将代码更改为:
<div data-ng-repeat="(items, item) in cmsData.rss.channel">
<div data-ng-bind-html="item.description"></div>
</div>
如评论中所述,
ng repeat
您的方式是针对数组的。对对象和属性使用以下语法:
(k, v) in cmsData.rss.channel.item
这将迭代
cmsData.rss.channel.item中的每个key/val对
如注释中所述,ng repeat
与数组的方式相同。对对象和属性使用以下语法:
(k, v) in cmsData.rss.channel.item
这将迭代
cmsData.rss.channel.item
中的每个key/val对,原因是在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>"
},
}}
{
“rss”:
{
“频道”:
{
“说明”:“,
“项目”:
[{
“描述”:“废话废话”,
“链接”:http://foo.bar",
“发布日期”:“2014年2月21日星期五-17:52”,
“标题”:“服务器维护”
}],
“语言”:“en”,
“链接”:http://foo.bar/alerts",
“标题”:“新闻和更新”
},
}}
原因是在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>"
},
}}
{
“rss”:
{
“频道”:
{
“说明”:“,
“项目”:
[{
“描述”:“废话废话”,
“链接”:http://foo.bar",
“发布日期”:“2014年2月21日星期五-17:52”,
“标题”:“服务器维护”
}],
“语言”:“en”,
“链接”:http://foo.bar/alerts",
“标题”:“新闻和更新”
},
}}
如果引用的是对象而不是数组,请检查文档中是否使用了ngRepeat参数中的对象
您需要cmsData.rss.channel.item中的data ng repeat=“(键,值)
然后,您可以使用
,它将列出项的所有属性。如果引用的是对象而不是数组,请检查文档中是否使用了ngRepeat参数中的对象
您需要cmsData.rss.channel.item中的data ng repeat=“(键,值)
然后您可以使用
,它将列出项目的所有属性。ng repeat
迭代和数组cmsData.rss.channel.item
不是数组。ng repeat
迭代并数组cmsData.rss.channel.item
不是一个数组。有时(通常)会有多个rss.channel.item。@Ryong——如果是这样,channel.item
肯定应该是一个数组。然后,您可以很好地处理空数组。+1从未见过您可以使用ng repeat
迭代对象属性。有没有办法检查“item”是否为数组?这两件事我都得处理。如果只有一个,则“项”将不是数组。我无法控制JSON。例如,如果项是数组{use ng repeat}否则{不要使用ng repeat}您可以使用typeof
进行检查,有时(经常)会有多个rss.channel.item。@ryoung——如果是这样,channel.item
肯定应该是数组。然后,您可以很好地处理空数组。+1从未见过您可以使用ng repeat
迭代对象属性。有没有办法检查“item”是否为数组?这两件事我都得处理。如果只有一个,则“项”将不是数组。我无法控制JSON。也就是说,如果项是数组{使用ng repeat}或者{不使用ng repeat}您可以使用typeof
检查此JSON是从使用Java JSONObject的rss/xml提要生成的,因此据我所知,我无法真正控制将JSON更改为将项作为数组。此JSON是从使用Java JSONObject的rss/xml提要生成的,因此我无法真正控制将JSON更改为将项作为数组据我所知。