Angular 2 AG-grid,对象键需要一个函数值

时间:2018-01-18 15:12:11

标签: javascript angular http typescript ag-grid

我有一个使用带有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"。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我明白了。你的方法非常慢。每次调用过滤器函数时,您将进行http调用。由于filter是ag-grid api的一部分,因此您无法控制何时调用该函数。至少每次用户键入过滤器框时都会调用它。 API需要同步调用以确保快速应用过滤器。

您要做的是确保在用户准备好之前不应用过滤器,您可以通过添加以下内容来执行此操作:

colDef = {column: 'name', filter: myFunction(), filterParams: 
  { applyButton: true }}

然后在http结果处理程序中,您需要重新应用过滤器。你可以这样做:

gridOptions.api.onFilterChanged();