该问题通常是由于没有在数据源中包含名为“position”的列所导致。为解决这个问题,检查数据源是否包含“position”列,并确保在表格定义中使用相同的列名。以下是一个示例代码,演示如何定义表格和数据源:
// 在组件中定义相关变量和方法
dataSource = new MatTableDataSource();
displayedColumns = ['position', 'name', 'weight', 'symbol'];
data: PeriodicElement[] = [
{position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H'},
{position: 2, name: 'Helium', weight: 4.0026, symbol: 'He'},
{position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li'},
{position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be'},
{position: 5, name: 'Boron', weight: 10.81, symbol: 'B'},
];
@ViewChild(MatTable) table: MatTable
// 在 ngOnInit() 中初始化数据源和表格 ngOnInit(): void { this.dataSource = new MatTableDataSource(this.data); this.table.dataSource = this.dataSource; }
在上面的代码示例中,表格中包含“position”, “name”, “weight”和“symbol”四列,数据源中也包含相应的数据。此外,我们还通过ViewChild从组件中获取了表格的引用,实现了数据源和表格的绑定。