如何在遇到服務器端錯誤(例如驗證錯誤)時回滾模型更改?Backbone.js服務器端驗證和其他服務器端錯誤
鑑於某些驗證必須在服務器端完成,使用backbone.js(Rails後端)執行此操作的適當方式是什麼?
當保存骨幹模型時,如果驗證失敗(該模型的視圖不更新),則會觸發客戶端驗證,以提供適當的用戶體驗。但是,如果服務器端驗證失敗,那麼在PUT到服務器之前,模型及其所有視圖都已更新(使用無效數據)。
這似乎有一些問題。
- 所有視圖都在模型被服務器端驗證之前更新。 如果,例如,你的機型列表,並附有彈出的編輯對話框 ,在列表中的模型與潛在 非可驗證的方式調用Model.save但它已被 服務器端驗證後,才更新PUT'ed。
- 如果服務器返回錯誤(例如422錯誤),則不會發生模型的「回滾」。無法驗證的數據就像坐在這裏一樣。這真的很糟糕。
我使用backbone.js錯了嗎?有沒有一種衆所周知的方式來處理這種(很常見)的情況?我知道我可以對舊值進行一些手動緩存等,但這是一種很臭的解決方案。
謝謝!
這似乎在這裏回答:http://stackoverflow.com/a/10335668/1284283(一年後,可能是一個較新版本的backbonejs)。 – brightgarden