używam Ember danych Aby edytować użytkownikowi automatyczne modelu rozdzielczościNajlepszy sposób, aby cofnąć wszystkie zmiany w modelu Ember Danych
this.route('user', function() {
this.route('edit', { path: ':user_id'})
});
Działa to dobrze, a użytkownik może modyfikować wszystkie aspekty modelu DS.attribute
, DS.belongsTo
i DS.hasMany
.
Użytkownik może nawigować na wiele sposobów, w takim przypadku wszystkie zmiany powinny zostać usunięte z modelu.
- Kliknięcie
Cancel
przycisk - Kliknięcie przycisku
Broswer Back
Kliknięcie przyciskuSave
, zdalne żądaniefails
, następnie z nawigacją od strony.- Wystarczy kliknąć inny link na stronie, który przenosi je w inne miejsce.
Zmiany należy wprowadzić tylko wtedy, gdy użytkownik wyraźnie tego chce, klikając przycisk Save
, a żądanie serwera powiedzie się.
Zastanawiam się, czy używać ember-buffered-proxy, ale nie jestem pewien, jak to będzie poradzić sobie ze związkami DS.belongsTo i DS.hasMany. Niezależnie od tego, przed zapisaniem modelu będę musiał wykonać buffer.applyBufferedChanges();
przed zapisaniem, a jeśli serwer zawiedzie, znajduję się w stanie zachowania jak poprzednio.
Haczyk willTransition
wydaje się być oczywistym miejscem do zrobienia tego, ale jak mogę upewnić się, że wszystkie zmiany zostały usunięte z modelu podanego rollbackAttributes()
działa tylko dla formantów .
Jeśli używasz zasady "Działania w górę, dane w dół" [(1)] (http://www.samselikoff.com/blog/data-down-actions-up/) [(2)] (https: //dockyard.com/blog/2015/10/14/best-practices-data-down-actions-up) i użyj jednokierunkowych powiązań w szablonie, aby zmiany podczas edycji nie były natychmiast propagowane do modelu, ale gdy kliknij "zapisz", a następnie model może zostać zaktualizowany za pomocą odpowiedniej akcji (tak, aby model był właścicielem kodu do aktualizacji, zamiast rozpraszania go na wielu trasach/komponentach) i jeśli odejdziesz od strony edycji, to zmiany są po prostu wyrzucić. – MT0
Naprawdę nie można zobaczyć, jak rozwiązuje to problem, ponieważ model danych ember jest modelem zwracanym z haka modelu tras. – jax
Zwrócenie pustego obiektu, a później zapisanie go jako modelu, jest tym, co należy wziąć pod uwagę? – TameBadger