带有Angular的GET请求中的错误[object Object]

时间:2018-10-30 20:26:44

标签: angular typescript ionic-framework

我正在使用Ionic构建一个移动应用程序,该应用程序将GET请求发送到服务器,接收作为响应的项目​​列表,并将其显示在页面上。

home.ts中的代码如下:

const url = <my_url>;
let day_id = <some_id>

this.response = this.httpClient.get(url);

this.response
  .subscribe(res => {
    this.items = res[day_id];
  });

我应该得到以下结构的响应:

{day_id: [{"time": ..., "name": ...}, {...}, {...}]}

然后我遍历接收的项目以显示它们,如下所示:

<ion-list>
<button ion-item *ngFor="let item of items" (click)="itemTapped($event, item)">
  {{item.time}}
  <div class="item-note" item-end>
    {{item.name}}
  </div>
</button>

但是不幸的是,当我运行该应用程序时,它提供了一些ERROR [object Object]。如我所见,它发生在this.response.subscribe内部。

我不知道该问题可能与什么有关。因此,任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

假设您要获得的响应的格式为:

{day_id: [{"time": ..., "name": ...}, {...}, {...}], ...}

并且您想要所有{ time: ..., name: ..., ... }对象的合并列表,可以在您的subscribe块中进行小的更改:

this.response
  .subscribe(res => {
    console.log(res);
    const finalArray = [];
    Object.keys(res).forEach(key => finalArray.push(...res[key]));
    this.items = finalArray;
});

day_id应该是字符串。

答案 1 :(得分:0)

您的回复中需要在day_id周围加上引号

this.response
  .subscribe(res => {
    this.items = res['day_id'];
  });

day_id实际上是对象属性时,它试图将其视为变量。