我将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>
如何将此Object转换为数组?
答案 0 :(得分: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
属性中。
答案 1 :(得分: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');
}
});
}
有关文档,请参阅here。