Come si ripristinano le modifiche del modello quando si verificano errori lato server (ad esempio errori di convalida)?Convalida lato server Backbone.js e altri errori lato server
Dato che determinate convalida devono essere eseguite sul lato server, qual è il modo appropriato per farlo con backbone.js (backend di Rails)?
Quando si salva un modello di dorsale, vengono avviati convalida sul lato client che forniscono l'esperienza utente appropriata se la convalida non riesce (le viste di tale modello non vengono aggiornate). Tuttavia, se la convalida sul lato server non riesce, il modello e tutte le sue viste sono già stati aggiornati (con dati non validi) prima del PUT sul server.
Sembra che ci siano alcuni problemi con questo.
- Tutte le viste vengono aggiornate prima che il modello sia stato convalidato sul lato server. Se, ad esempio, si dispone di un elenco di modelli con una finestra di dialogo di modifica , il modello nell'elenco viene aggiornato con potenzialmente informazioni non validabili dopo aver richiamato Model.save ma prima che sia stato convalidato lato server e PUT'ed.
- Se il server restituisce un errore (ad esempio 422 errore), non si verifica alcun 'rollback' del modello. I dati non invalidabili sono semplicemente seduti lì come uno stronzo. Questo è davvero il cattivo.
Sto usando backbone.js sbagliato? Esiste un modo ben noto per gestire questo scenario (molto comune)? Capisco che posso fare un po 'di cache manuale dei vecchi valori, ecc., Ma è una specie di soluzione maleodorante.
Grazie!
Questa risposta sembra essere la seguente: http://stackoverflow.com/a/10335668/1284283 (un anno dopo, e probabilmente una versione più recente di backbonejs). – brightgarden