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