2015-09-13 394 views
0

我需要從JSON獲取嵌套產品到我的html <div ng-repeat="order in orders"></div>我嘗試了很多獲取產品值(名稱,描述等)的版本,但它們都不起作用。這個怎麼做 ?從json獲取嵌套值angularJS

JSON:

[ 
    { 
     "id":3, 
     "date":"00:00:00", 
     "user":{ 
     "id":1, 
     }, 
     "orderState":{ 
     "id":1, 
     }, 
     "products":[ 
     { 
      "id":1, 
      "name":"Bosch POF 1200", 
      "description":"1200W", 
      "enabled":true, 
      "price":459, 
     }, 
     { 
      "id":9, 
      "name":"Graphite 58G782", 
      "description":"a", 
      "enabled":true, 
      "price":429, 
     } 
     ] 
    } 
] 

控制器

OrdersService.retrieveAllByCurrentUser().then(function(response) { 
    $scope.orders = response.data; 
    console.log(response.data); 
}, function(error) { 
    registerError(error, 'retrieving all orders'); 
}); 
+1

你最好的嘗試是什麼?你期望它做什麼以及它做了什麼?發佈您的代碼。 –

回答

2

創建一個嵌套ng-repeat這樣的訪問products信息:

<div ng-repeat="order in orders"> 
    <div ng-repeat="product in order.products"> 
    <h1 ng-bind="product.name"></h1> 
    <p ng-bind="product.description"></p> 
    </div> 
</div> 

對於每個order將進入order.products和環信息如product,那麼您可以通過點號表示訪問product中的信息,例如product.name

1

可以在HTML做嵌套ng-repeat

<div ng-repeat="order in orders"> 
    <div ng-repeat "product in order.products"> 
     <span>{product.name}}</span> 
     <span>{{product.description}}</span> 
    </div> 
</div> 
3

的NG-重複指令創建一個新的範圍,這意味着你應該能夠循環通過其內的同類產品:

<div ng-repeat="order in orders"> 
<div ng-repeat="product in order.products"> e.g. {{product.name}} </div> 
</div> 

我也會建議編寫一個處理這種東西的指令,因爲你的代碼很快就不可讀。儘管我不是Angular的專家,但請不要對此表示擔憂。

+0

除非要在代碼中的多個位置使用指令,否則不需要指令。 – Chrillewoodz

+0

@Chrillewoodz你是絕對正確的。我只是想指出它,因爲如果你問這樣一個簡單的問題,你可能也有興趣學習一些更好的項目的良好做法:) –