我在我的 Angular 项目中使用 ag-grid
库。我试图通过使用 doesExternalFilterPass 来阻止某些节点显示在表中。
doesExternalFilterPass
方法为表中的每个节点运行,如果我从他们的文档中正确理解了该方法返回 false,则不应显示它:
doesExternalFilterPass 为网格中的每个行节点调用一次。如果返回 false,则该节点将从最终集合中排除。
下面是我的代码:
doesExternalFilterPass(node: any) {
for(let i = 0; i < this.columnDefs.length; i++) {
var temp = this.columnDefs[i].headerName;
if(node.data[temp] === 'Declined') {
console.log('found);
return false;
}
}
}
代码运行成功,控制台打印“found”。上面的代码从列的 Filter List 中删除了值 'Declined',但具有值 'Declined' 的行仍然显示在表中。
如何完全删除具有“拒绝”值的行?
您的指导将不胜感激。
答案 0 :(得分:1)
在我看来,您甚至希望在将数据显示在网格中之前从数据中过滤掉这些对象,所以如果我没有误解您的问题,那么简单的 filter
就可以了:
this.myData = this.myData.filter(obj => obj.someProperty !== "Declined");
// then create the grid
显然将变量和属性名称更改为您的名称。