Angular Material Table数据源未正确绑定/更新,没有错误,但没有任何作用

时间:2018-08-09 10:22:31

标签: angular angular-material material-design

在检查服务页面时:

<table _ngcontent-c6="" class="mat-elevation-z8 mat-table" fxfill="" 
      mat-table="" matsort="" role="grid" ng-reflect-data-source="[object Object]">

在视图中:

table matSort fxfill mat-table [dataSource]="dataSource" class="mat-elevation-z8"

在控制器/构造函数中:

this.dataSource = new MatTableDataSource(this.section1)
this.dataSource.sort = this.sort;

this.service.getSection1().subscribe(data => {
  this.section1 = data;
  console.log(this.section1);
})

我还创建了一个带有按钮的函数,单击该按钮后,将数据源更改为“ BookingId”:“ SomethingSomething”,当我单击它时,它起作用了。我确实得到了智能感知错误和其他东西。

我还在其中添加了dataSource的console.log,经检查,“ section1”对象中的数据未添加到dataSource中。

我一直在重复使用以前项目中的很多代码,在此配置下一切正常。

我还有一个在我的Controller +导出的接口模型中定义的“ displayedColumns”对象。

我仅使用1行进行测试,以确保不会造成任何拼写错误或其他小问题。

编辑:

如果我将其添加到click函数中,即使intellisense不喜欢它,数据也会正确添加到表中:

this.service.getSection1().subscribe(data => {
  this.dataSource = data;
  console.log(this.section1)
})

1 个答案:

答案 0 :(得分:0)

我刚刚在this.section1 = data之后添加了this.dataSource =新的MatTableDataSource(this.section1);似乎奏效了,但现在我对它为何在其他应用程序中奏效感到困惑。

几天后,我最终使用redux重建了所有内容,并在商店中的数组上使用了@select()装饰器,然后在构造函数中对其进行了订阅。这也很好。