每个垫表数据源

时间:2019-12-03 22:41:52

标签: angular typescript angular-material

我正在尝试通过执行以下操作来遍历数据源对象:

this.datasource.data.forEach()

但是它无法识别我的数据是对象数组,所以我尝试这样做:

 const objects: ObjectModel[] = this.datasource.data

然后出现以下错误:

object type is assignable to very few other types

如何对数据源数据进行forEach?

已更新,以包括模型定义:

ObjectModel = {
id: string,
firstName: string,
lastName: string
}

2 个答案:

答案 0 :(得分:0)

您不能forEach对象。虽然有一些方法可以遍历对象...

Object.keys

Object.values

Object.entries

那些是一些受欢迎的。

您可以检查以下参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

如果确实有对象数组,则应该可以使用forEach。但是您发布的数据不是这种格式。

for (let [key, value] of Object.entries(objectModel)) {
  console.log(`${key}: ${value}`);
}

答案 1 :(得分:0)

将对象分配给数据源,如下所示,

datasource: MatTableDataSource<ObjectModal> = [{
id: 1, firstName: 'David', lastName: 'Joe'},
{id: 2, firstName: 'Jeol', lastName: 'Jare'}]

const objects: ObjectModal[] = datasource.data;

注意:请参考https://github.com/typicode/json-server/blob/4f315b090f6a504c261bab83894d3eb85eabe686/src/cli/run.js#L138