AngularJS访问JSON嵌套对象失败

时间:2015-05-05 20:25:05

标签: json angularjs

我有一个看起来像这样的JSON对象图(注意对象中只有一个名为lineItems的数组:

{
  "salesOrderUid": 52,
  "orderNumber": "1428002206349",
  "billToCity": "Golden",
  "billToFirstName": "Duke",
  "billToLastName": "Developer",
  "shipToStreetNumber": "12345",
  "shipToUnitNumber": null,
  "shipToZipCode": 80401,
  "promoCode": "Test",
  "lineItems": [
    {
      "salesOrderLineUid": 59,
      "salesOrderUid": 52,
      "extendedPrice": 50,
      "itemQuantity": 10,
      "itemPrice": 5,
      "catalogItem": {
        "catalogItemUid": 1,
        "itemPrice": 5,
        "catalog": {
          "catalogUid": 1,
          "validFrom": 1420095600000,
          "validThrough": 1435644000000
        },
        "item": {
          "itemUid": 1,
          "productCategoryUid": 1,
          "productDescription": "Product used for testing",
          "productName": "Test"
        }
      },
      "shipmentUid": null
    }
  ]
}

我像这样迭代lineItems

<tr ng-repeat="salesOrderLineItem in salesOrder.lineItems">
  <td>{{salesOrderLineItem.catalogItem.catalog.productName}}</td>
  <td>{{salesOrderLineItem.itemQuantity}}</td>
  <td>{{salesOrderLineItem.itemPrice | currency}}</td>
  <td>{{salesOrderLineItem.extendedPrice | currency}}</td>
</tr>

“第一级”属性显示得很好。 (itemQuantityitemPriceextendedPrice)但是,对于名为catalogItem.catalog.productName的嵌套属性,没有显示任何内容。

上面反映的JSON对象直接来自Developer Tools控制台,因此很明显内容就在那里。并且catalogItem属性不是数组,所以我应该能够链接对象属性引用,不应该吗?

我已经看到许多与访问嵌套JSON有关的问题,但它们似乎都在JSON中有嵌套数组......这不是这里的情况。

提前致谢

2 个答案:

答案 0 :(得分:1)

catalog不包含名为productName的字段。您的意思是使用item代替catalog吗?

答案 1 :(得分:1)

在我看来'productName'嵌套在'item'下,而不是'catalog'。

将行更改为

<td>{{salesOrderLineItem.catalogItem.item.productName}}</td>

这应该是你想要的?