Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS ng重复不';如果只有一个元素,则无法工作_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS ng重复不';如果只有一个元素,则无法工作

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> <

以下是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=&#039;/news&#039;>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=&#039;/news&#039;>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=&#039;/news&#039;>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更改为将项作为数组据我所知。