使用ng repeat显示JSON

时间:2014-11-13 05:25:33

标签: javascript angularjs angularjs-ng-repeat

我有格式

的JSON数据
[

    {
        "_1": {
            "id": 4,            
            "cost": 45.0,
            "measure": 4,
            "NoOfUnits": 677,            
            "hours": null
        },
        "_2": {
            "id": 1,
            "name": "Truck",
            "description": "Test"        
        }
    },
    {
        "_1": {
            "id": 1,
             "cost": 1120.0,
            "measure": 1,
            "NoOfUnits": 500,
             "hours": null
        },
        "_2": {
            "id": 7,
            "name": "PC300",
            "description": null           
        }
    },
]

我无法显示我在$ scope变量中存储的数据说

  

$ scope.result

这是我的重复功能

<div ng-repeat="data in result">{{data.name}}{{data.description}}</div>

3 个答案:

答案 0 :(得分:1)

您的$scope.result包含2 objects,在一个对象中,您有一组object properties,如_1,_2,然后这些properties又是< / p>

"_1": {
    "id": 4,            
    "cost": 45.0,
    "measure": 4,
    "NoOfUnits": 677,            
    "hours": null
}

,然后你需要打印properties

<ul>
  <li ng-repeat="x in result">        // repeats objects
       <ul ng-repeat="obj in x">      // repeat object properties '_1',"_2" , these are again objects
           {{obj.name}}{{obj.description}}
       <ul>
  </li>
</ul>

答案 1 :(得分:1)

使用您的数据结构......您无法直接从首次ng-repeat访问名称和说明。

即使你有嵌套的ng-repeat,你也无法保证名称和描述。您需要在首次ng-repeat之后展平对象,然后才能访问所有属性。假设_1,_2对象属性是相关的。

答案 2 :(得分:0)

需要两个循环---

<div ng-repeat="data in result">
   <div ng-repeat="obj in data">
       {{obj.cost}}{{obj.name}}
    </div>
</div>

演示:http://jsfiddle.net/HB7LU/8254/