2013-01-06 13 views
5

Buduję prostą aplikację CRUD. Mam listę rekordów pobrane z serwera, kliknij pierwszy i jestem na stronie show dla tego rekordu z delete przycisku, która łączy w tej akcji na kontrolerze:Usunięty zapis w ember nie został usunięty z kolekcji

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

wiem, że rekord jest usunięty, widzę go usunięty na serwerze. Żądanie AJAX zakończyło się pomyślnie. Jednak rekord nadal pojawia się na stronie indeksu. Jeśli wykonam twardy odświeżenie z serwera, to już go nie ma.

router dla usersIndex jest następujący:

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

Czy kiedykolwiek zastanawiałeś się, dlaczego? Mam podobny problem. – chopper

+0

Ktoś znalazł rozsądną pracę? (Mam taki sam problem) – TrevTheDev

Odpowiedz

0

Rozwiązanie Zgłosiłem na mojego projektu było zwiększenie usersIndex odfiltrować wszelkie rekordy np isDeleted

w szablonie coś takiego:

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

Również można wykorzystać hak afterModel do testowania isDeleted np .:

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

Czy to nowe pytanie? –

+0

Zaktualizowałem, aby usunąć moje pytanie. – TrevTheDev

1

Po wywołaniu deleteRecord należy go zapisać do danych Ember.

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

Lub alternatywnie można pozwać destroyRecord który usunięty thh rekord z obu zaplecza i Ember danych

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

Nadzieja to pomaga!

Powiązane problemy