Backbone Model.save返回undefined而不是jqxhr

编辑1 :这个问题不再有效。 欲了解更多信息,请查看本问题最后的编辑#2。

骨干文档说,如果验证成功,Backbone.Model.save函数返回一个jqXHR对象,否则返回false。 所以如果没有定义验证方法,model.save方法应该返回一个jqXHR,但实际上它返回'undefined'。 model.fetch正常工作并返回一个jqXHR对象。

jqXHR对象对于链接其他被缓存的对象很有用。 我正在调用多个模型的保存,并希望在所有保存方法完成时更新UI。 我想要做类似的事情

$.when(promise1,promise2,.....)
.done().then(function(){
   /* some callback code here */
})

这是文档所说的

保存 model.save([属性],[选项])
通过委托给Backbone.sync将模型保存到数据库(或备用持久​​层)。 如果验证成功,则返回jqXHR,否则返回false。

这是我的代码

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(或其自定义同步方法),因此save方法返回'undefined'。


我忘了提及我在我的代码中覆盖了Backbone.sync方法,并且在我重写的方法中,我没有返回任何东西。 由于model.save委托给Backbone.sync,保存方法返回'undefined'。 我更正了我的代码以返回jqXHR对象。 现在一切运行良好。

链接地址: http://www.djcxy.com/p/67083.html

上一篇: Backbone Model.save returns undefined instead of jqxhr

下一篇: backbone.js model not updating on fetch after success