Joh*_*ohn 11 ruby-on-rails backbone.js
当遇到服务器端错误(例如验证错误)时,如何回滚模型更改?
鉴于某些验证必须在服务器端完成,使用backbone.js(Rails后端)执行此操作的适当方法是什么?
保存骨干模型时,如果验证失败,则会触发客户端验证,从而提供适当的用户体验(该模型的视图不会更新).但是,如果服务器端验证失败,则在PUT到服务器之前,模型及其所有视图已经更新(使用无效数据).
这似乎有一些问题.
我使用backbone.js错了吗?是否有一种众所周知的方法来处理这种(非常常见的)情景?我知道我可以对旧值等进行一些手动缓存,但这是一种有臭味的解决方案.
谢谢!
不知道我是否做错了(BackboneJS新手),但我遇到了同样的问题,这就是我解决它的方法:
我在服务器端进行所有验证
我没有做正常的model.save,而是对服务器进行标准的ajax调用,并返回包含修改模型属性的错误消息或成功消息.如果成功,我可以使用返回的属性执行model.set以更新模型和相应的视图.
如果你想先做客户端验证,我想你可以用{silent:true}选项进行保存,这样就不会更新视图,然后进行ajax调用,看看需要做什么根据响应(如果错误则恢复模型的原始值,如果成功则恢复更新视图)
希望这可以帮助.
ps:这有效,但感觉不到"干净".如果有更好的解决方案,我也很乐意阅读它
| 归档时间: |
|
| 查看次数: |
3039 次 |
| 最近记录: |