2015-02-09 59 views
5

我希望能够设置/更新控制器中的值,然后在网格中对其进行过滤。目前,只有输入网格才能更新过滤器,然后触发filterChanged事件。任何想法如何我可以自动过滤数据在我的网格配置或至少做一个硬刷新?AngularJS:从外部方法更新用于UI Grid的过滤器

谢谢你的帮助。

这是来自AngularJS UI Grid网站的稍微修改过的Plunker。 http://plnkr.co/edit/pgX31NT3Ry3XllZ3JO2B?p=preview

这里是在columnDefs节我目前的过滤器定义:

{ field: 'company', filter: { 
    noTerm: true, 
    condition: function(searchTerm, cellValue) { 
     return cellValue == scope.term; 
    } 

回答

4

当你定义gridOptions,设置与gridAPI变量如下:

onRegisterApi: function(gridApi){ 
    $scope.gridApi = gridApi; 
}, 

,然后在更新功能,请执行以下操作以重新评估过滤条件:

$scope.gridApi.grid.refresh() 

正如@Conan提到的,一个突破性的更新已经发布,并且这项工作仅在

有一个错误,这在3.2.x上不起作用。测试并在3.1.x和4.x版本中工作 http://plnkr.co/edit/YbgV9YZrWCZE4cc3qGru?p=preview

+1

从版本3.2.1开始,refresh()不再触发导致网格重新评估自定义过滤器函数的事件。只有在过滤器框中放置文本才会触发该事件。 – Bowen 2016-07-14 12:36:35

+0

更新plunkr ...我还没有在相当长的一段时间里尝试过API,现在可能还有别的东西 – r0m4n 2016-07-14 17:14:20

+0

就像你说的,我认为这是新版UI网格的问题。 – Bowen 2016-07-14 17:28:15