Backbone.js - id vs idAttribute vs cid



我已经研究Backbone.js几个星期了,我觉得在模型、路由器和集合中使用视图很舒服。

我还有一些很大的差距:

  1. idcididAttribute之间的连接是什么?它们是如何相互影响的?

  2. 一个新模型什么时候得到它的ID?服务器是否负责分配?我是否需要将其添加到模型的defaults中(可能作为一个函数)?也许addNewModel函数应该这样做?

idcididAttribute之间的连接是什么?它们是如何相互影响的?

cid和id都应该是模型的唯一id,并且可以用于从集合中检索模型。

两者之间的区别在于,cid是由backbone.js客户端分配的,如果您没有实际的id,这很有用,因为模型尚未保存到服务器,或者您甚至没有将其保存到数据库(可能您使用的是localStorage)。id属性应该是来自服务器的模型的id(即数据库中的id)。idAttribute告诉主干网它应该使用来自您的服务器的哪个"字段"来更新id属性,默认情况下,它被设置为"id",但正如文档中所说,如果您的服务器使用其他东西,您可以将其设置为"_id"(给出的示例是将它设置为"identi"

一个新模型什么时候得到它的ID?服务器是否负责分配?我是否需要将其添加到模型的defaults中(可能作为一个函数)?也许addNewModel函数应该这样做?

当保存到服务器时,它们应该会获得新的id,并且您不需要手动设置它(基于idattribute),除非您需要对流程进行更多控制。

id-id可以在创建模型时手动设置,也可以在模型保存在服务器上时填充(请参阅底部的"idAttribute"以查看连接)。这是从服务器加载或更新模型时发送到服务器的id,例如,对于模型人员,如果id为123,"/perse/123",则会进行此呼叫

cid-唯一id设置我的主干模型供内部使用

idAttribute-这决定了当模型保存在服务器上时,哪个属性将充当唯一的id(默认为"id")。例如,模型在服务器上的唯一密钥可能由"personId"定义,因此当调用fetch时,模型将把服务器响应从"personId"映射到骨干模型中的id。

id是服务器型号id,cid是客户端id。

  • 服务器模型:例如Rails模型
  • 客户端模型:主干模型

模型上的id属性是根据模型属性哈希中设置的id自动分配的。理想情况下,这是您从正在查询的资源的其余API接收的ID。另一方面,cid是临时分配给每个模型的ID,并且在确定对象的实际ID之前是有用的。例如,推送到尚未持久化的集合的模型可以使用cid进行寻址,直到它被保存在数据库中并为其生成实际ID

最新更新