Backbone.js的 - ID VS idAttribute VS CID(Backbone.

2019-06-27 12:13发布

我一直在学习Backbone.js的几个星期,我用配车型,路由器和收藏观点感觉很舒服。

我还有一些很大的差距:

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

  2. 当究竟一个新的模型得到它的ID? 在服务器负责分配呢? 我是否需要将其添加到defaults的模型(也许作为一个函数)的? 也许addNewModel功能应该这样做?

Answer 1:

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

无论是CID和ID应该是唯一的ID为模型,并可以用来检索模型从一个集合。

两者之间的区别是, cid被Backbone.js的客户端分配的,是有用的,如果你没有一个实际的ID,要么是因为该模型尚未保存到服务器或者你甚至不它保存到数据库(也许你正在使用localStorage的 )。 该id属性应该是来自于你的服务器模型的ID(即该ID是在你的数据库是什么)。 idAttribute告诉骨干其中“场”从你的服务器来它应该使用更新id属性,默认情况下这是设置为“ID”,但它说,在文档如果服务器使用了别的东西,你可以将其设置为(在例如给出的将其设置为“_id”。

当究竟一个新的模型得到它的ID? 在服务器负责分配呢? 我是否需要将其添加到defaults的模型(也许作为一个函数)的? 也许addNewModel功能应该这样做?

他们应该得到的时候保存到新的ID的服务器 ,你不应该需要手动设置(基于idattribute ),除非你需要在过程中更多的控制。



Answer 2:

ID - ID可能会被创建的模型时,可以手动设置,或当模型已被保存在服务器上填充(见“idAttribute”在底部看到连接)。 这是当模型加载或从服务器如更新时被发送到服务器,一个模型人ID此通话将被制成,如果id为123,“/人/ 123”

CID - 唯一的ID设为我骨干模型供内部使用

idAttribute - 这决定哪些属性将作为唯一的身份证法案(默认为“ID”)时,该模型已被保存在服务器上例如,一个模型的服务器上唯一的密钥可能是由“PERSONID”来定义,所以当取被称为模型将映射从“PERSONID”为ID在骨干模型中的服务器响应。



Answer 3:

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

  • 服务器模式:如导轨型号
  • 客户端模式:骨干模型


Answer 4:

id在模型属性是基于自动分配的id在模型的属性哈希集合。 理想情况下,这是你从其他API您所查询的资源接收ID。 在另一方面, cid是临时分配给每个模型的ID,直到实际的ID被用于对象确定是有用的。 例如,一个模型推到尚未被持久化可以使用处理一个集合cid ,直到它被保存在数据库中,因为它是生成的实际ID。



文章来源: Backbone.js - id vs idAttribute vs cid