ally69
@ally69
недофронтенд

Angular material table и DataSource?

Добрый день! Как к mat-table можно подключить уже готовый массив, полученный из бд?
  • Вопрос задан
  • 4820 просмотров
Решения вопроса 1
StivinKing
@StivinKing
Допустим есть у нас сервис home.service.ts по которому нам приходит наш массив
public getElementData(): Observable<any[]> {
  return this._httpClient.get('api/test'); // any[]
}

HTML код берем из примера по ссылке

В компоненте home.component.ts объявляем 2 свойства и 1 метод который вызывается в OnInit
public displayedColumns: string[] = ['position', 'name', 'weight', 'symbol'];
public dataSource;

// constructor ...

ngOnInit(): void {
  this._getElementData();
}

private _getElementData(): void {
  this._homeService.getElementData().subscribe(res => {
    this.dataSource = new MatTableDataSource(res);
  });
}

либо
public displayedColumns: string[] = ['position', 'name', 'weight', 'symbol'];
public dataSource = new MatTableDataSource();

// constructor ...

ngOnInit(): void {
  this._getElementData();
}

private _getElementData(): void {
  this._homeService.getElementData().subscribe(res => {
    this.dataSource.data = res;
  });
}


Получаем в итоге такую картину:
5af995e81332e883129757.png

Ну и ссылка с хорошим, всеохватывающим, примером (Angular 5.2 и rxjs 5.5) - stackblitz
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы