2017-09-17 5 views
0

Ich bin neu zu Ember, was ich erstellt habe, ist eine Task-Manager-App in Ember. Ich habe ein Modell für die Aufgaben bekam, die das Folgende:Ember Feuer Filterdaten in Controller

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    title: DS.attr('string'), 
    location: DS.attr('string'), 
    date: DS.attr('date'), 
    archive: DS.attr('boolean'), 
}); 

ich auch es habe für dieses Modell in einer Taskliste Seite alle Aufgaben zu zeigen. Allerdings habe ich derzeit Probleme, nur die Aufgaben zu filtern, bei denen das Archiv nicht wahr ist.

In meiner Taskliste Route Ich habe dies bekam durch meine Aufgabe

model: function() {  
     return this.store.findAll('task'); 
    } 

Jedoch habe ich diesen alle Aufgaben filtern müssen ziehen, wo Archiv gleich falsch ist. Ich füge das hier hinzu oder in meinen Controller.

Aktualisiert

Ich habe dies hinzugefügt, um meinen Controller:

filteredModel: Ember.computed('model', function(){ 
     let model = this.get('model'); 

     return model.filter(function(item){ 
      return item.data.archive == false; 
     }); 

    }), 

Diese Art der Arbeit, so dass seine Anzeige eine gefilterte Liste jedoch, wenn ich ein neues Element in die Liste aufnehmen spielt es keine Aktualisieren Sie die Liste mit dem neuen Element.

Antwort

1

die berechnete Eigenschaft in Reglern einzuführen, die die gefilterte Taskliste zurückkehren werden,

notArchivedTask: Ember.computed.filterBy('model','archive',false) 
+0

I hinzugefügt, dies zu meinem Controller und meine jede Schleife aktualisiert, um die notArchivedTask als das Modell zu integrieren, angezeigt jedoch die Ansicht, ohne Daten überhaupt – jsg

+0

In Ihrem aktualisierten Code müssen Sie den abhängigen Schlüssel 'model. []' einschließen, so dass dies jedes Hinzufügen/Entfernen-Element neu berechnet. – kumkanillam

+0

würden Sie in der Lage sein, in einer Antwort zu demonstrieren – jsg

Verwandte Themen