2015-02-09 7 views
5

Ich möchte in der Lage sein, einen Wert in meinem Controller zu setzen/zu aktualisieren, der dann im Grid gefiltert wird. Derzeit werden die Änderungen am Filter nicht aktualisiert, bis ich in das Raster eintippe, das dann das filterChanged-Ereignis auslöst. Irgendeine Idee, wie ich die Daten in meiner Grid-Konfiguration automatisch filtern oder zumindest eine harte Aktualisierung durchführen kann?AngularJS: Filter für UI Grid von externer Methode aktualisieren

Vielen Dank für die Hilfe.

Hier ist ein leicht modifizierter Plunker von der AngularJS UI Grid-Website. http://plnkr.co/edit/pgX31NT3Ry3XllZ3JO2B?p=preview

Hier ist meine aktuelle Filterdefinition im columnDefs Abschnitt:

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

Antwort

4

Wenn Sie Ihre gridOptions definieren, stellen Sie die gridAPI Variable mit den folgenden:

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

Und dann in der Update-Funktion Führen Sie Folgendes aus, um die Filterbedingung neu zu bewerten:

$scope.gridApi.grid.refresh() 

Wie @Conan erwähnt wurde, wurde ein Breaking Update veröffentlicht und das funktioniert nur in

Es gab einen Fehler und dies funktioniert nicht auf 3.2.x. Getestet und funktioniert in 3.1.x und 4.x http://plnkr.co/edit/YbgV9YZrWCZE4cc3qGru?p=preview

+1

Ab Version 3.2.1 löst refresh() nicht mehr das Ereignis aus, das dazu führt, dass das Grid die benutzerdefinierte Filterfunktion neu bewertet. Nur das Einfügen von Text in das Filterfeld löst dieses Ereignis aus. – Bowen

+0

Aktualisieren der Plunkr ... Ich habe nicht mit der API in ziemlich langer Zeit experimentiert, kann es jetzt noch etwas anderes zur Verfügung – r0m4n

+0

Wie Sie sagten, ich denke, es ist ein Problem mit der neuen Version von Ui Grid. – Bowen

Verwandte Themen