如何在表格中显示{object object}?

时间:2017-08-17 06:29:24

标签: json angular tabular ngfor

实际上我想在表格中显示this data。这里的数据是{object object}。我想显示"最后","买"的所有值。 &安培; "卖"来自所有货币。我可以做硬代码,但我想通过使用ng-repeat或ngFor来减少代码行。如何写这个条件?

我正在使用Angular 4。

3 个答案:

答案 0 :(得分:2)

您需要创建一个管道,然后您可以遍历对象。

@Pipe({ name: 'ObjNgFor',  pure: false })
export class ObjNgFor implements PipeTransform {
    transform(value: any, args: any[] = null): any {
        return Object.keys(value)//.map(key => value[key]);
    }
}

这个plnkr可能对你有帮助。

plnkr

答案 1 :(得分:1)

感谢回复人员,您的方式运作良好。但我找到了更简单的方法:

function generateArray(obj) {
  return Object.keys(obj).map((key) =>  obj[key] );
}

这会将json对象转换为数组和

<tr *ngFor="let post of posts">
            <td>{{post.last}}</td>
            <td>{{post.buy}}</td>
            <td>{{post.sell}}</td>  
          </tr>

这会将json迭代到表中。

P.S:我已经将json保存到“帖子”中的“obj”中。“

答案 2 :(得分:0)

ngFor适用于迭代,因此在您的情况下,您需要首先将json数据转换为数组。

let blockChainData:any = { ... } //data.retrieved.from.server;
let blockChainDataArray:Array<any> = [];

let dataKeys:Array<string> = Object.keys(blockChainData);
dataKeys.forEach((key:string) => {
   let entry:any = blockChainData[key]; // Retrieve the object associated with the currency
   entry.originalCurrency = key; // Preserve the original currency
   blockChainDataArray.push(entry);
});

在你的html代码中,迭代数组

<td *ngFor="let entry of blockChainDataArray">{{ entry.originalCurrency }} {{ entry.buy }} {{ entry.sell }} {{ entry.last }} </td>