如何告诉骨干网模型不是新的

arc*_*age 11 javascript backbone.js backbone-model

我有一个对象也保存在服务器中,我正在从该对象创建一个Backbone模型.

但是当我保存模型时,它正在执行PUT请求,这不是我想要的.如何告诉Backbone数据已经在服务器中而不进行提取?

nik*_*shr 19

Backbone通过检查是否设置了id来确定模型的新颖性:

是新的 model.isNew()

此模型是否已保存到服务器了?如果模型还没有id,则认为它是新的.

当你保存模型时,

  • 如果是新的,将发出POST请求,
  • 如果是更新(已设置id),则将发送PUT请求

Backbone Sync文档


正如@JayC在评论中指出的那样:

如果存在id无法实际存在的问题id,您可以使用idAttribute说明"身份"或关键字段.

  • 注意,如果存在id无法字面上为"id"的问题,则可以使用idAttribute.http://documentcloud.github.com/backbone/#Model-idAttribute说出哪个是"身份"或关键字段. (4认同)
  • @archmage奇怪,它应该是一个POST.检查这个小提琴http://jsfiddle.net/jq98Z/,它重现了预期的行为.也许你在某处覆盖默认同步或动作映射? (2认同)