我只是围绕BackboneJS,但我仍然在努力解决的很多事情之一就是模型与服务器端数据库记录的完全匹配和相关性。
例如,我有一个模型“Dvd”,现在我更改了“Dvd”模型的属性,例如名称,然后我调用save(),服务器端究竟是如何知道什么数据库记录到更新? Backbone是否保留数据库行ID或其他内容?
答案 0 :(得分:1)
是的,通常您将设置Backbone模型,以便它们具有您正在使用的任何对象的数据库行ID。当其中一个在客户端是全新的并且尚未保存到服务器时,它将具有默认ID或无ID,这无关紧要,因为如果初始保存事务成功,服务器将分配ID
在保存或更新模型项时,Backbone希望服务器回复一些JSON,其中包含自保存或更新请求以来已更改的任何属性。在对初始保存请求的响应中,服务器通知客户端新保存的项目的行ID(您还可以发送您可能需要同时传递给客户端的任何其他信息)。
默认情况下,假定模型对象的“id”属性是其唯一标识符,但如果您使用主键的不同标识符,则骨干允许您更改此属性。只需为您的模型提供idAttribute
参数(请参阅Backbone.Model.extend()
的文档)即可。
同时,可以将urlRoot
参数或url
函数提供给模型,以表征应该用于向给定模型的服务器发送各种ajax请求的URL。 / p>