在使用FormArray时,因为数据不是直接绑定到table上,所以使用内置的过滤器无法起作用。解决方法是在组件中编写自定义的过滤器函数,并将其绑定到table的dataSource上。
首先,在组件中定义过滤器函数,例如:
applyFilter(filterValue: string) {
this.dataSource.filterPredicate = (data: any, filter: string) => {
return data.name.indexOf(filterValue) !== -1;
};
this.dataSource.filter = filterValue.trim().toLowerCase();
}
然后,在HTML模板中添加过滤器的输入框和按钮,并将其绑定到过滤器函数上,例如:
...
这样就可以在Angular Material可编辑表格中使用FormArray并添加过滤器功能了。