将@Input的对象传递给MatTableDataSource角材质

时间:2019-11-11 04:34:23

标签: angular typescript angular-material

如何将在@Input() data(子组件)中收到的对象传递给dataSource,我这样做的方式不允许接收它。 我将举例说明我在this link:

中的工作

  @Input() data:PeriodicElement[];
  dataSource = new MatTableDataSource<PeriodicElement>(this.data);

  @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;

  constructor() { }

  ngOnInit() {
    this.dataSource.paginator = this.paginator;

    // console.log(this.dataSource)
  }

2 个答案:

答案 0 :(得分:1)

定义数据源并使用ngOnInit方法初始化

@Input() data:PeriodicElement[];
dataSource = new MatTableDataSource<PeriodicElement>();

 @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;

constructor() { }

ngOnInit() {
  this.dataSource = new MatTableDataSource<PeriodicElement>(this.data);
  this.dataSource.paginator = this.paginator;

  // console.log(this.dataSource)
}

答案 1 :(得分:0)

最好的方法是将set属性与输入配合使用,例如:

@Input() set data(value) {}

请参见stackbitz

上的工作示例