我对使用 patch HTTP 方法在主干中通过表单实现模型保存有很大的疑问。
我的问题是,如果服务器返回错误,在下一次保存时主干将发送一个空对象作为数据,因为这些值已经在模型上设置,因此它们不会再次更改。
我的代码如下所示:
var data = $('#form').serialize();
this.model.set(data);
var attr = (this.model.hasChanged()) ? this.model.changedAttributes() : {};
this.model.save(attr,{patch: true, wait: true, error: function(model, xhr, options){
model.set(model.previousAttributes(),{silent: true});
}});
我已经设法通过将模型的属性重新设置为以前的值来“解决”这个问题,但我觉得这不对……有没有更好的方法来管理这种情况?如果可能的话,我会避免每次都将整个表单数据发送到服务器!谢谢。
编辑:一个显示问题的小提琴,感谢 Creynders。