javascript - 定位对象内的数组 - Angular 2 中的 Observables

标签 javascript arrays angular typescript

有一次,我使用 observables 成功地迭代了 Angular 2 应用程序中数组中的对象。在我的客户服务文件中,我有这样的内容:

getByCategory(category: string) {
    const q = encodeURIComponent(category);
    return this.http.get
    (`https://api.someurl.com/${this.ver}/clients/category/${q}?apikey=${this.key}`)
        .map((response: Response) => response.json())
        .catch(this.stageErrorsHandler);
}
    stageErrorsHandler(error: Response) {
    console.error(error);
    return Observable.throw(error.json().error || 'Server error');
}

然后我订阅了组件的 ngOnInit 生命周期 Hook ,如下所示:

ngOnInit() {
   this.clientService.getByCategory('consulting')
        .subscribe(resRecordsData => this.records = resRecordsData,
        responseRecordsError => this.errorMsg = responseRecordsError);
}

在组件中,我还将记录初始化为空数组:

records = [];

然后在我看来,我正在迭代这个记录数组,如下所示:

<tr *ngFor="let record of records">

现在 api/服务器上的数据配置已更改。我曾经定位一个数组,看起来像这样:

[
  {
    "id": "someid",
  }
]

...我需要将其更改为现在的目标名为“data”的数组,该数组位于对象内。它看起来像这样:

{
  "count": 1000,
  "data": [
      {
         "id": "someid",
      }
   ]
}

我遇到了一个简单的问题:如何在这样的对象中定位数组?我需要定位对象内的数组,因为这就是 *ngFor 需要的以便能够迭代。

最佳答案

您可以尝试通过以下方式定位记录中的数组:

<tr *ngFor="let record of records.data">

您可以在数据检索中为数据设置记录:

this.records = resRecordsData.data

关于javascript - 定位对象内的数组 - Angular 2 中的 Observables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43332173/

相关文章:

javascript - document.referrer 存在但始终为空

ruby-on-rails - Ruby - 意外的哈希数据结构

javascript - 使用 jquery 删除现有的 div 并在加载时附加到新的 div

javascript - 字符串插值不起作用

arrays - If 语句基于 UIPickerView 中选定的行

C# 仅在随机位置更改数组的一部分

angular - 在 Angular 2 中重用组件

javascript - 如何在 Angular 4 中使用 ngModel 从表单中获取值

node.js - node.js 只是一个包含文件的函数文件吗? (阅读问题详细信息以获取更多详细信息)

javascript - setInterval Spotify 应用程序