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