在ng-repeat中定位嵌套数组

时间:2013-11-21 12:54:00

标签: javascript json angularjs angularjs-ng-repeat

有人可以告诉我这里我做错了吗?

我正在检索一些数据并以'productInfo'的形式注入控制器。

我可以很好地加载数据但是当我想在ng-repeat中定位特定值时,我没有得到所需的结果。我得到的最好的是JSON的最后一组数据。

我从服务器获取JSON,如果需要可以更改格式。我刚刚开始使用Angular,如果有一个简单的答案就道歉。

HTML:

<div ng-controller="ProductStandardCtrl">
  <p>Item:</p>
    <article ng-repeat="item in items"> 
        <img ng-src="{{item.img}}" class="logo" alt="">
        <h4>{{item.title}}</h4>
    </article>
</div>

JSON:

{
"description":"Lorem Ipsum",
"headline":"Promotion headline",
"items":{
    "Standard":
        {"img":"http://placehold.it/303x152",
        "title":"Standard Product 1"
        },
    "Standard":
        {"img":"http://placehold.it/303x152",
        "title":"Standard Product 2"
        },
    "Standard":
        {"img":"http://placehold.it/303x152",
        "title":"Standard Product 3"
        }
    }
}

由于

2 个答案:

答案 0 :(得分:0)

json上的items属性不是数组,因此您无法对其进行迭代。

所需的格式应如下所示:

{
    "description":"Lorem Ipsum",
    "headline":"Promotion headline",
    "items":[
        {
            "img":"http://placehold.it/303x152",
            "title":"Standard Product 1"
        },
        {
            "img":"http://placehold.it/303x152",
            "title":"Standard Product 2"
        },
        {
            "img":"http://placehold.it/303x152",
            "title":"Standard Product 3"
        }
    ]
}

答案 1 :(得分:0)

items内有相同的键。密钥必须是唯一的:

"items":{
    "Standard":{
        ..
    },
    "Standard":{
        ..
    },
    "Standard":{
        ..
    }
}

应该是

"items":{
    "Standard1":{
        ..
    },
    "Standard2":{
        ..
    },
    "Standard3":{
        ..
    }
}