Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Ag grid:更新过滤器参数以更改可能的过滤器值_Angular_Ag Grid - Fatal编程技术网

Angular Ag grid:更新过滤器参数以更改可能的过滤器值

Angular Ag grid:更新过滤器参数以更改可能的过滤器值,angular,ag-grid,Angular,Ag Grid,我们有一个自定义的角度组件作为特定列的过滤器,它列出了该列可能的过滤器值。可能的筛选器值可以动态更改,列表可以变长或变短。因此,我们需要更新特定的colDef的filterParams。然而,问题是,我们重新分配了网格的columnDefs,这会清除其他过滤器,不适合我们。我们要找的是类似这样的gridOptions.api.setFilterModel,但要设置filterParams并重新创建过滤器组件 仅更改特定colDef的过滤器参数并销毁过滤器没有帮助。重新创建时,在agInit中,它

我们有一个自定义的角度组件作为特定列的过滤器,它列出了该列可能的过滤器值。可能的筛选器值可以动态更改,列表可以变长或变短。因此,我们需要更新特定的
colDef
filterParams
。然而,问题是,我们重新分配了网格的
columnDefs
,这会清除其他过滤器,不适合我们。我们要找的是类似这样的
gridOptions.api.setFilterModel
,但要设置
filterParams
并重新创建过滤器组件

仅更改特定
colDef
的过滤器参数并销毁过滤器没有帮助。重新创建时,在
agInit
中,它将接收旧的
filterParams
。这可能是因为更改检测没有检测到
列定义中的任何更改


ag grid是否有任何方法可以动态更新
filterParams
,而无需重新分配
columnDefs

我也在做同样的事情,我发现更新columnDefs甚至不能让filterParams重新运行。我现在正在研究它,但我知道您可以调用grid方法:

gridApi.destroyFilter('colID') on each column to destroy their filters.

然而,这并不会关闭过滤器,因此您必须深入研究一些网格方法来实现这一点(或更新colDefs)。我认为有一种方法可以事先获取所有过滤器模型,并在破坏过滤器后尝试重新应用它们,但这可能会陷入一个黑暗而可怕的兔子洞。

我也有同样的事情,我发现更新列defs甚至不能让过滤器参数重新运行。我现在正在研究它,但我知道您可以调用grid方法:

gridApi.destroyFilter('colID') on each column to destroy their filters.

然而,这并不会关闭过滤器,因此您必须深入研究一些网格方法来实现这一点(或更新colDefs)。我认为有一种方法可以事先获取所有过滤器模型,并在破坏过滤器后尝试重新应用它们,但这可能会陷入一个黑暗而可怕的兔子洞。

我建议您将
可观察的
传递到
过滤器参数中。这样就不需要更新整个columnDef。您只需将动态数据传递到可观察对象,它将反映在您的自定义过滤器中。@DurgeshPal我也遇到过这种情况。你这到底是什么意思?filterParams:(params)=>{返回传单参数的我的代码}。我是否会设置一个可观察对象,它在每次rowdata更新时返回?或者以某种方式覆盖filterParams所做的和filterParams类似的事情:this.rowData.subScribe()?这取决于您获取filterParams的方式。它可能来自rowData或某些api。您只需设置一个可观察对象,该对象将传递给filterParams。Observable将在向其提供数据时自动订阅。您还可以在stackblitz上共享最小可复制代码以获得更多了解。我建议您将
可观察的
传递到
过滤器参数中。这样就不需要更新整个columnDef。您只需将动态数据传递到可观察对象,它将反映在您的自定义过滤器中。@DurgeshPal我也遇到过这种情况。你这到底是什么意思?filterParams:(params)=>{返回传单参数的我的代码}。我是否会设置一个可观察对象,它在每次rowdata更新时返回?或者以某种方式覆盖filterParams所做的和filterParams类似的事情:this.rowData.subScribe()?这取决于您获取filterParams的方式。它可能来自rowData或某些api。您只需设置一个可观察对象,该对象将传递给filterParams。Observable将在向其提供数据时自动订阅。您还可以在stackblitz上共享最小可复制代码,以获得更多理解。