我有一个使用带有ag-grid的Angular 2的项目。
colDef = {column: 'name', filter: myFunction()}
public myFunction () {
http.get('params_doesn't matter').subscribe((response: any) => {
console.log('params work, everything is fine');
http.get({response.id}).subscribe((res:any) => {
console.log('this works, still fine, the value that is returned is an object and i cannot pass it to "filter"');
return res;
})
})
}
我得到的回应是一系列对象,但关键是"过滤"从我的对象需要采取" res"。
非常感谢。
答案 0 :(得分:0)
我明白了。你的方法非常慢。每次调用过滤器函数时,您将进行http调用。由于filter
是ag-grid api的一部分,因此您无法控制何时调用该函数。至少每次用户键入过滤器框时都会调用它。 API需要同步调用以确保快速应用过滤器。
您要做的是确保在用户准备好之前不应用过滤器,您可以通过添加以下内容来执行此操作:
colDef = {column: 'name', filter: myFunction(), filterParams:
{ applyButton: true }}
然后在http结果处理程序中,您需要重新应用过滤器。你可以这样做:
gridOptions.api.onFilterChanged();