在调用Save()之后,Backbone.js'Model'期望从服务器返回什么?

时间:2012-08-25 02:24:00

标签: javascript rest backbone.js

调用Save()后,Backbone.js'模型'期望从服务器返回什么?

我问的原因是因为在调用Save()后模型被清除时出现问题。我摆弄了模型的parse()方法。我发现返回一个空对象或null没有产生这种行为。但是,服务器返回一些JSON作为“成功”消息,这些信息似乎覆盖了模型:

{
    message: 'SUCCESS'
}

服务器响应来自主干Save()的{​​{1}}请求的“正确”方式是什么?

谢谢!

2 个答案:

答案 0 :(得分:10)

服务器应该响应HTTP状态200,最有可能,并且应该返回服务器为模型生成或更新的任何数据。通常,这只是模型的服务器生成的id字段。从服务器返回的任何字段都将应用于模型。所以,如果你把它发送到服务器:


{
  foo: "bar"
}

和服务器响应:


{
  id: 1, // or some other server generated ID, from a database, etc.
  message: "SUCCESS"
}

您的模型最终会看起来像这样:


{
  id: 1,
  foo: "bar",
  message: "SUCCESS"
}

如果您的模型在调用save方法时不需要从服务器更新任何数据,那么您应该返回一个空的{}对象文字。

答案 1 :(得分:4)

这个问题经常出现在这里,我已经问过了。似乎将此添加到评论中并不会有助于未来的提问者,因此这里是回答和提问的链接

Getting started with backbonejs - what should a server return