在ng-repeat中获取未知密钥

时间:2013-03-22 19:48:19

标签: angularjs angularjs-ng-repeat

当我尝试对哈希数组进行ng-repeat时,键似乎成为索引。那么如何才能获得这样一个对象的密钥呢?

[
    {
    "3000:501:001": {
        "End Date": "05/05/2013",
        "Term": "Spring Semester 2013",
        "Title": "Cooperative Education",
        "Career": "Graduate",
        "Section": "001",
        "Days": "T.B.A.",
    },
    {
    "6200:660:801": {
        "End Date": "05/05/2013",
        "Term": "Spring Semester 2013",
        "Career": "Graduate",
        "Section": "801",
        "Days": "M",
    }
    }
]

当我在课程“

中执行ng-repeat =”(键,课程)时

键只是索引0和1。

我需要获得“3000:501:001”和密钥所指的对象。我不知道关键名称。

2 个答案:

答案 0 :(得分:2)

您需要使用另一个ng-repeat来迭代对象。

但我强烈建议尽可能为您的数据设置不同的结构。您可以将冒号分隔的数字作为内部对象的属性。

答案 1 :(得分:1)

为了实现您的期望,您不会将对象包装在数组中并将它们转换为单个对象。您获得0,1等的原因是数组中的key是它的索引值

JS

$scope.items={
        "3000:501:001": {
            "End Date": "05/05/2013",
            "Term": "Spring Semester 2013",
            "Title": "Cooperative Education",
            "Career": "Graduate",
            "Section": "001",
            "Days": "T.B.A."
        }
    };

HTML

<li ng-repeat="(id,item) in items">{{id}}        
     <div ng-repeat="(key,value) in item">{{key}}: {{value}}</div>
</li>

DEMO:http://plnkr.co/edit/vyNN7HCx1t6lHD73gTLC?p=preview

通常,为ng-repeat使用数组更方便,并重新构建数据。它也不需要额外的ng-repeat来访问嵌套对象