Angular / Typescript-REST服务中属性内对象的引用数组

时间:2018-09-19 19:58:45

标签: angular typescript

我有一个简单的REST服务,它返回类似于以下内容的JSON:

{"id":123,
 "name":"Sam",
 "transactions":[
    {"date":"2018-05-31","amount":29.99,"desc":"shirt"},
    {"date":"2018-05-31","amount":42.99,"desc":"pants"},
    {"date":"2018-05-31","amount":59.99,"desc":"shoes"}
  ]
}

我正在尝试在Angular组件(.ts)中引用它来处理数据。我可以使用以下方法在html模板中很好地阅读它:

<tr *ngFor="let transaction of accountTransactions.transactions ">
  <td> {{ transaction.date}} </td>
  <td> {{ transaction.amount}} </td>
  <td> {{ transaction.desc}} </td>
</tr>

当我在组件中时,从promise收到值之后,我可以访问返回数据的“ main”属性(id和name),但是我无法弄清楚要使用的语法或方法获取数组中的数据:

public getAccountTransactions() {
this.apiService.getAccountTransactions(this.acct).toPromise().then(data => {
    console.log('in getAccountTransactions');
    this.accountTransactions = data;
    console.log(data.id);   // this works fine
    console.log(this.accountTransactions.id) // this works fine
    console.log(this.accountTransactions.transactions[0].amount) // this doesn't work
}

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您的代码实际上没有任何错误。您应该检入apiService以查看是否有问题。

在JSON中的普通对象中发生错误,实际上并没有什么特别的事情要做。您的对象中根本没有交易[0]