2013-01-06 4 views
5

Ich erstelle eine einfache CRUD-App. Ich habe eine Liste der Datensätze vom Server geholt, klicken Sie auf den ersten, und ich bin auf der show Seite für diesen Datensatz mit einem delete Knopf, der auf dem Controller in diese Aktion bindet:Gelöschter Datensatz in Glut wird nicht aus der Sammlung entfernt

destroy: function() { 
    this.content.deleteRecord() 
    this.store.commit() 
    this.transitionTo('usersIndex') 
} 

Ich weiß, dass der Datensatz gelöscht, kann ich es auf dem Server gelöscht sehen. Die AJAX-Anfrage ist erfolgreich. Der Datensatz wird jedoch weiterhin auf der Indexseite angezeigt. Wenn ich eine harte Aktualisierung vom Server mache, ist es jetzt weg.

Mein Router für usersIndex ist folgende:

App.UsersIndexRoute = Ember.Route.extend({ 
    model: function(params) { 
    return App.Users.find(); 
    }, 
    setupController: function(controller, model) { 
    controller.set('content', model); 
    } 
}); 
+0

Haben Sie jemals herausgefunden warum? Ich habe ein ähnliches Problem. – chopper

+0

Hat jemand eine vernünftige Arbeit gefunden? (Ich habe das gleiche Problem) – TrevTheDev

Antwort

0

Die Lösung, die ich an meinem Projekt angelegt war usersIndex zu verbessern zum Beispiel alle isDeleted Datensätze herauszufiltern

In der Vorlage so etwas wie:

{{#unless user.isDeleted}} 
    {{render 'user' user}} 
{{/unless}} 

Auch kann man die afterModel Haken nutzen für isDeleted zu testen z.B .:

afterModel: function(model){ 
    if ((!model.get('users').isAny('isDeleted',false)) || model.get('users.length') === 0){ 
     this.send('exitUserIndex'); 
    } 
} 
+0

Ist es eine neue Frage? –

+0

Aktualisiert, um meine Frage zu entfernen. – TrevTheDev

1

Nach deleteRecord Aufruf Sie es für die glut Daten speichern müssen.

destroy: function() { 
    this.content.deleteRecord() 
    this.content.get('isDeleted'); 
    this.content.save() 
    this.store.commit() 
    this.transitionTo('usersIndex') 
} 

Oder alternativ können Sie destroyRecord verklagen, die thh Datensatz aus beiden Backend und ember Daten

destroy: function() { 
     this.content.destroyRecord() 
     this.transitionTo('usersIndex') 
    } 

this helps gelöscht!

Verwandte Themen