我已经研究 Backbone.js 几个星期了,我觉得使用带有模型、路由器和集合的视图很舒服。
我还有一些很大的差距:
id
,cid
, 和之间有什么联系idAttribute
?它们如何相互影响?新模型究竟何时获得其 ID?服务器负责分配吗?我是否需要将其添加到
defaults
模型中(可能作为函数)?也许该addNewModel
功能应该这样做?
我已经研究 Backbone.js 几个星期了,我觉得使用带有模型、路由器和集合的视图很舒服。
我还有一些很大的差距:
id
, cid
, 和之间有什么联系idAttribute
?它们如何相互影响?
新模型究竟何时获得其 ID?服务器负责分配吗?我是否需要将其添加到defaults
模型中(可能作为函数)?也许该addNewModel
功能应该这样做?
id
,cid
, 和之间有什么联系idAttribute
?它们如何相互影响?
cid和id都应该是模型的唯一 id,并且可以用于从集合中检索模型。
两者之间的区别在于cid
由backbone.js 客户端分配,如果您没有实际的ID,则很有用,因为模型尚未保存到服务器,或者您甚至没有保存它到一个数据库(也许你正在使用localStorage)。该id
属性应该是来自您的服务器的模型的 id(这就是您的数据库中的 id)。idAttribute
告诉骨干网应该使用来自您的服务器的哪个“字段”来更新id
属性,默认情况下,它设置为“id”,但正如文档中所说,如果您的服务器使用其他东西,您可以将其设置为那个(给出的示例将其设置为“_id”。
新模型究竟何时获得其 ID?服务器负责分配吗?我是否需要将其添加到
defaults
模型中(可能作为函数)?也许该addNewModel
功能应该这样做?
他们应该在保存到服务器idattribute
时获得新的 id,除非您需要对流程进行更多控制,否则您不需要手动设置它(基于)。
id - 可以在创建模型时手动设置的 id,或者在模型保存在服务器上时填充的 id(请参阅底部的“idAttribute”以查看连接)。这是从服务器加载或更新模型时发送到服务器的 id,例如,对于模型 Person,如果 id 为 123,则将进行此调用,“/person/123”
cid - 唯一 id 设置我的骨干模型供内部使用
idAttribute - 这决定了当模型保存在服务器上时哪个属性将充当唯一 id(默认为“id”),例如,模型在服务器上的唯一键可能由“personId”定义,所以当调用 fetch 时model 会将服务器响应从“personId”映射到主干模型中的 id。
id
是服务器型号 ID,cid
是客户端 ID。
模型上的属性是根据模型的属性散列中id
的集合自动分配的。id
理想情况下,这是您从您正在查询的资源的 REST API 收到的 ID。另一方面,cid
是临时分配给每个模型的 ID,在确定对象的实际 ID 之前很有用。例如,推送到尚未持久化的集合的模型可以使用 来处理cid
,直到将其保存在数据库中并为其生成实际 ID。