gpt4 book ai didi

javascript - Backbone Model.save 返回 undefined 而不是 jqxhr

转载 作者:行者123 更新时间:2023-11-29 18:13:02 25 4
gpt4 key购买 nike

编辑 1:这个问题不再有效。有关更多信息,请查看此问题末尾的编辑#2。

backbone 文档说如果验证成功,Backbone.Model.save 函数返回一个 jqXHR 对象,否则返回 false。因此,如果未定义验证方法,则 model.save 方法应返回 jqXHR,但它实际上返回“undefined”。 model.fetch 工作正常并返回一个 jqXHR 对象。

jqXHR 对象可用于与其他延迟对象链接。我在多个模型上调用保存,并希望在所有保存方法完成后更新 UI。我想做类似的事情

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

这是文档说的

save model.save([attributes], [options])
Save a model to your database (or alternative persistence layer), by delegating to Backbone.sync. Returns a jqXHR if validation is successful and false otherwise.

这是我的代码

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 委托(delegate)给 Backbone.sync(或它自己的自定义同步方法),保存方法返回“未定义”。

最佳答案

我忘了提到我在我的代码中重写了 Backbone.sync 方法,而在我重写的方法中我没有返回任何东西。由于 model.save 委托(delegate)给 Backbone.sync,save 方法返回“undefined”。我更正了我的代码以返回 jqXHR 对象。现在一切都运行良好。

关于javascript - Backbone Model.save 返回 undefined 而不是 jqxhr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25618781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com