Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度材质垫表不刷新数据_Angular_Angular7_Mat Table - Fatal编程技术网

Angular 角度材质垫表不刷新数据

Angular 角度材质垫表不刷新数据,angular,angular7,mat-table,Angular,Angular7,Mat Table,我无法刷新mat表的数据源。我是这样宣布的: dataSource:MatTableDataSource=new MatTableDataSource(); 其中,Custom_Data是我用自定义字段创建的一个接口。在ngOnInit中,我从服务器获取数据并执行以下操作: this.networkService.getCapitaliSelectItem(this.idCompeto).subscribe(d=>{ 表数据=d; this.tableData.forEach(c=>{ //操

我无法刷新mat表的数据源。我是这样宣布的:

dataSource:MatTableDataSource=new MatTableDataSource();
其中,
Custom_Data
是我用自定义字段创建的一个接口。在ngOnInit中,我从服务器获取数据并执行以下操作:

this.networkService.getCapitaliSelectItem(this.idCompeto).subscribe(d=>{
表数据=d;
this.tableData.forEach(c=>{
//操纵数据
});
this.dataSource=新MatTableDataSource(this.tableData);
//放在这里是为了触发变化检测,而不是工作
this.changeDetector.detectChanges();
}
表上没有显示任何数据。然后我有一个筛选方法,因为在我的表的标题中有两个输入字段,用于筛选表中的数据。在这种情况下,如果我写了一些东西,将调用方法筛选,我的数据将显示在表中,一切正常。
过滤方法为:

applyFilter(filterValue:string,column:string){
filterValue=filterValue.trim();//删除空白
filterValue=filterValue.toLowerCase();//MatTableDataSource默认为小写匹配
如果(数字(filterValue.length)!=0){
this.dataSource.data=this.tableData.filter(d=>d[column].toLowerCase().indexOf(filterValue)>-1);
}否则{
this.dataSource.data=this.tableData;
}
}

为什么这个方法有效而不是ngOnInit方法?我也尝试了
this.dataSource.data=this.tableData
而不是
this.dataSource=new MatTableDataSource(this.tableData);
,但不起作用。

可以在stackblitz中准备一个工作示例吗?不必从外部服务器获取数据,您可以使用of()准备一些模拟数据作为可观察数据运算符。@IraklisGkougkousis我准备了一个Stackblitz,但它在那里工作…我真的不知道为什么,我做了相同的操作..唯一不同的是我的表处于模态中,但它在加载时应该表现得像一个普通组件,我猜?…changeDetector.detectChanges()是什么意思是吗?@IraklisGkougkousis基本上它检查所有需要更新的视图并重新渲染。它来自angular-core。这有帮助吗?