编辑1:这个问题不再有效。有关更多信息,请查看本问题末尾的编辑#2。
主干文档表示,如果验证成功,Backbone.Model.save函数将返回一个jqXHR对象,否则它将返回false。因此,如果未定义验证方法,则model.save方法应该返回一个jqXHR,但实际上它返回“未定义”。model.fetch工作正常,并返回一个jqXHR对象。
jqXHR对象对于与其他被分离的对象进行链接非常有用。我正在对多个模型调用一个保存,并希望在所有保存方法完成后更新UI。我想做这样的事
$.when(promise1,promise2,.....)
.done().then(function(){
/* some callback code here */
})这是医生们说的
保存model.save(属性、选项) 通过将模型委托给Backbone.sync,将模型保存到数据库(或替代持久层)。如果验证成功,否则返回jqXHR。
这是我的密码
var x = new Backbone.Model();
x.url = "/a/valid/url";
var y = x.save({key1: "value1"});
var z = x.fetch();
console.log(typeof(y));
console.log(typeof(z));控制台输出为
undefined
a jqXHR object这不是记录jqXHR对象,而是将“未定义”记录到控制台。有人能帮我吗?
编辑2:我忘记提到在代码中重写Backbone.sync方法,而在重写的方法中没有返回任何内容。由于model.save将委托给Backbone.sync (或它自己的自定义同步方法),所以保存方法返回“未定义”。
发布于 2014-09-08 09:13:13
我忘了在代码中重写Backbone.sync方法,而在重写的方法中,我没有返回任何内容。由于model.save委托给Backbone.sync,所以保存方法返回“未定义”。我修改了代码以返回jqXHR对象。现在一切都很好。
https://stackoverflow.com/questions/25618781
复制相似问题