gpt4 book ai didi

backbone.js - Backbone model.save() 导致 POST not PUT

转载 作者:行者123 更新时间:2023-12-04 10:27:30 24 4
gpt4 key购买 nike

我有一个 Backbone 模型:

var User = Backbone.Model.extend({
idAttribute: '_id',

url: '/api/user',

defaults:
{ username: ''
}
});

我取它:
var user = new User();

user.fetch();

现在,作为 click在我的一个观点中,我有这个:
toggleSubscription: function () {
user.set('subscriptions', true);
user.save();
}

这会导致 POST 请求。但是,该记录已经存在于服务器上,并且由于我获取了它(并且模型实例具有 id 属性),我认为 Backbone 应该执行 PUT 而不是 POST。为什么它可能会做一个 POST 呢?

最佳答案

尝试检查 user.isNew() .

看起来您创建了一个没有 ID 的新模型,这就是它试图在 Backbone.sync 期间添加它的原因。 .

更新:

以上是完全正确的。确实如此 POST因为它是一个新模型(这意味着它没有 id)。在获取模型之前,您需要给它一个 id。在你的例子中:

var user = new User();
user.fetch();
user.save(); // in XHR console you see POST

var user = new User({ id: 123 });
user.fetch();
user.save(); // in XHR console you see PUT

关于backbone.js - Backbone model.save() 导致 POST not PUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11587217/

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