Передать объект @Input в угловой материал MatTableDataSource - PullRequest
0 голосов
/ 11 ноября 2019

как передать объект, который я получаю в @Input() data (дочерний компонент), в dataSource, способ, которым я это делаю, не позволяет получить его. Я оставляю пример того, что я делаю в по этой ссылке:


  @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 ]

1 голос
/ 11 ноября 2019

Определите источник данных и инициализируйте его в методе 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)
}
0 голосов
/ 11 ноября 2019

Лучшим способом было бы использовать свойство set с вводом, например:

@Input() set data(value) {}

См. Рабочий пример по stackbitz

...