2012-10-31 34 views
2

我只是围绕BackboneJS开始工作,但我仍在努力的(很多)事情之一是模型如何与服务器端数据库记录同步。例如,我有一个模型“Dvd”,现在我更改“Dvd”模型的名称,例如名称,然后调用save(),服务器端如何知道数据库记录更新? Backbone是否保存数据库行ID或其他内容?如何识别BackboneJS模型serverside

回答

1

是的,通常情况下,您将设置您的Backbone模型,以便它们具有您正在使用的任何对象的数据库行ID。当它们中的一个在客户端是全新的并且尚未保存到服务器时,它将具有默认ID或没有ID,这并不重要,因为如果初始保存事务成功时服务器将分配ID 。

在保存或更新模型项时,Backbone希望服务器使用某些JSON进行回复,该JSON包含自进行保存或更新请求后发生更改的任何属性。在对初始保存请求的响应中,服务器通知客户端新保存的项目的行ID(并且还可以发送可能需要同时传递给客户端的任何其他信息)。

默认情况下,模型对象的'id'属性被假定为它的唯一标识符,但是如果您为主键使用不同的标识符,主干可以让您更改此属性。只要给你的模型一个idAttribute参数(请参阅Backbone.Model.extend()的文档)来做到这一点。

同时,urlRoot参数或url函数可以赋予您的模型,以表征用于向给定模型发送各种ajax请求到服务器的url。