我有一个对象也保存在服务器中,我正在从该对象创建一个主干模型。
但是当我保存模型时,它正在执行 PUT 请求,这不是我想要的。如何告诉 Backbone 数据已经在服务器中而不进行获取?
我有一个对象也保存在服务器中,我正在从该对象创建一个主干模型。
但是当我保存模型时,它正在执行 PUT 请求,这不是我想要的。如何告诉 Backbone 数据已经在服务器中而不进行获取?
Backbone 通过检查是否设置了 id 来确定模型的新鲜度:
是新的
model.isNew()
这个模型已经保存到服务器了吗?如果模型还没有
id
,则认为它是新的。
当你保存模型时,
正如@JayC在评论中指出的那样:
如果存在 id 不能从字面上理解的问题id
,您可以用idAttribute
它来说明哪个是“身份”或关键字段。
在这里加上我的两分钱,希望它能避免我不得不做的一些头发拉扯。
直接通过构造函数将模型的 id 属性设置为 false 或 null 不会成功,您必须通过 delete 将其从内存中实际删除
例如,我只是努力将属性从一种模型类型复制到另一种类型作为新模型:
copy = Trip.clone()
#doesn't unset the id attribute
schedule = new models.Schedule(_.extend(copy.attributes, {id:null, trip_id:id})
#does unset the id attribute
delete schedule.id
schedule.save null, success: =>
# back from POST vs PUT
...