Backbone.js - id vs idAttribute vs cid

Dan*_*iel 47 javascript ajax jquery backbone.js underscore.js

我已经研究了Backbone.js几周了,我觉得使用模型,路由器和集合的视图很舒服.

我还有一些很大的差距:

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

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

Jac*_*ack 59

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

无论是CIDID应该是唯一的ID为模型,并可以用来检索模型一个集合.

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

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

他们应该在保存到服务器时获取新的ID,idattribute除非您需要对流程进行更多控制,否则您不需要手动设置它(基于).


3co*_*ins 7

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

cid - unique id设置我的内部使用的主干模型

idAttribute - 当模型保存在服务器上时,它决定哪个属性将作为唯一ID(默认为"id"),例如,服务器上模型的唯一键可能由"personId"定义,因此当调用fetch时model会将服务器响应从"personId"映射到骨干模型中的id.