2015-02-09 14 views
5

Vorrei essere in grado di impostare/aggiornare un valore nel mio controller che viene quindi filtrato nella griglia. Attualmente, le modifiche al filtro non vengono aggiornate fino a quando non digito nella griglia, che quindi attiva l'evento filterChanged. Qualche idea su come posso filtrare automaticamente i dati nella mia configurazione di rete o almeno fare un aggiornamento?AngularJS: filtro di aggiornamento per UI Grid dal metodo esterno

Grazie per l'aiuto.

Ecco un Plunker leggermente modificato dal sito Web AngularJS UI Grid. http://plnkr.co/edit/pgX31NT3Ry3XllZ3JO2B?p=preview

Ecco la mia definizione filtro corrente nella sezione columnDefs:

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

risposta

4

Quando si definisce la vostra gridOptions, impostare la variabile gridAPI con il seguente:

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

E poi nella funzione di aggiornamento , eseguire quanto segue per rivalutare le condizioni del filtro:

$scope.gridApi.grid.refresh() 

Come @Conan menzionato, è stato rilasciato un aggiornamento di rottura e funziona solo in

C'era un errore e questo non funziona su 3.2.x. Testato e funziona in 3.1.xe 4.x http://plnkr.co/edit/YbgV9YZrWCZE4cc3qGru?p=preview

+1

A partire dalla versione 3.2.1, refresh() non attiva più l'evento che provoca la rivalutazione della griglia della funzione di filtro personalizzata. Solo mettendo il testo nella casella del filtro si attiva quell'evento. – Bowen

+0

Aggiornamento del plunkr ... Non ho mai provato l'API in un po 'di tempo, potrebbe esserci qualcos'altro ora disponibile – r0m4n

+0

Come hai detto, penso che sia un problema con la nuova versione di ui grid. – Bowen

Problemi correlati