我有一个Angular材质数据表,该表以Angular Material文档中所述的方式实现:
https://material.angular.io/components/table/overview#filtering
我的问题出在我的数据源上,我有这个数据模型:
export interface CustomerHistory {
entity_id: number;
email: string;
name: string;
lastname: string;
cpfcnpj: string;
cpfcnpj2: string;
rg: string;
phone1: string;
phone2: string;
country: string;
state: string;
city: string;
address: string;
FullAddress: string;
cep: string;
orders: CustomerOrders[];
}
最后一个属性是“订单数组”,这导致过滤器无法与其他字段一起正常工作
这是我的过滤器功能:
applyFilter(filterValue: string) {
filterValue = filterValue.trim(); // Remove whitespace
filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches
this.dataSource.filter = filterValue;
}
我的问题是如何在数据源中的数组对象属性中搜索?
答案 0 :(得分:2)
首先,当您绘制table时,请确保创建类似
的循环 this.dataSource.data.orders.forEach(element => {
element.toString();
//turn CustomerOrders[] to string
});
然后,applyFilter()应该可以工作
`applyFilter(filterValue: string) {
this.dataSource.filter = filterValue.trim().toLowerCase();
}`