将mat-table与可观察的HTTP请求集成

时间:2018-11-27 20:27:25

标签: angular angular-material observable

嗨,我只想在HTTP REQUEST的mat-table结果中显示。

我不想要为什么我不能显示。

我的组件:

    displayedColumns: string[] = ['id'];
dataSource = new MatTableDataSource<User>();

constructor(private httpService: HttpService) {
  this.httpService.accounts.subscribe(users => { this.dataSource.data = users; });
}

ngOnInit() {
}

我的html:

<mat-table>
<ng-container matColumnDef="id">
<mat-header-cell *matHeaderCellDef>id</mat-header-cell>
<mat-cell *matCellDef="let user">{{user.id}}</mat-cell>>
</ng-container>

<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
</mat-table>

当我console.log时,我所有的用户都具有属性ID。

1 个答案:

答案 0 :(得分:0)

我认为每当数据源更改时,您都需要调用_updateChangeSubscription()来更新视图。 MatTable不会隐式接受更改。

displayedColumns: string[] = ['id'];
dataSource = new MatTableDataSource<User>();

constructor(private httpService: HttpService) {
  this.httpService.accounts.subscribe(users => {
    this.dataSource.data = users;
    this.dataSource._updateChangeSubscription();
  });
}