2

我正在将 API 调用中的一些值显示到 ngFor 指令中。我正在尝试将数据转换为数组。这是我从服务器得到的:

来自服务器的数据

我订阅这样的数据:

 onVideoClick(video_id) {
    this._dashboardService.getVideoData(video_id)
      .subscribe(videoData => {
        if (videoData.ok) {
          console.log(videoData.json());
          this.videoData = videoData.json();
        } else {
          console.log('pas de données vidéos');
        }
      });
  }

我以这种方式显示我的数据:

     <tr>
        <th *ngFor="let vD of videoData">{{vD.attr_libelle}}</th>
     </tr>

如何把这个对象变成一个数组?

4

2 回答 2

1

您可以为此实现自定义管道。这是一个从对象条目创建数组的示例:

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
  transform(value, args:string[]) : any {
    let keys = [];
    for (let key in value) {
      keys.push({key: key, value: value[key]);
    }
    return keys;
  }
}

并像这样使用它:

<span *ngFor="#entry of content">           
  Key: {{entry.key}}, value: {{entry.value}}
</span>

不要忘记将管道添加到pipes要使用它的组件的属性中。

于 2016-07-20T13:52:06.000 回答
0

我将使用 Lodash 库进行此转换。

onVideoClick(video_id) {
    this._dashboardService.getVideoData(video_id)
      .subscribe(videoData => {
        if (videoData.ok) {
          console.log(videoData.json());
          this.videoData = _.values(videoData.json());
        } else {
          console.log('pas de données vidéos');
        }
      });
  }

有关文档,请参见此处

于 2016-07-20T13:24:32.430 回答