我有一个如下所示的 API 响应:
{
"2019-02-13": {
"costs": 117,
"commission": 271.07
},
"2019-02-14": {
"costs": 123,
"commission": 160.37
},
//etc..
}
我想将此对象用作我的材料数据表的数据源,但出现此错误:
提供的数据源与数组、Observable 或 DataSource 不匹配
我尝试使用这样的单元格定义:
//cost
<td mat-cell *matCellDef="let item | keyvalue"> {{item.value.costs}} </td>
//date
<td mat-cell *matCellDef="let item | keyvalue"> {{item.key}} </td>
但这没有用。
我当然可以遍历我的对象并创建一个这样的数组:
[
{
commission: 100,
costs: 45
date: '2019-02-13'
},
{
commission: 100,
costs: 45
date: '2019-02-13'
}
]
这可能会解决我的问题,但我宁愿不这样做,因为我觉得这是不必要的。
编辑
我通过将此代码添加到我的服务调用来修复它:
let data = [];
for (let key in response) {
let value = response[key];
let obj = {date: key, commission: value.commission, costs: value.costs}
data.push(obj);
}
return data;