1,model的id,idAttribute和cid的区别?
答:cid和id都是model的唯一标识符,使用二者任意一个都可以从collection中返回一个model。
cid存储了Backbone.js为model分配的客户端唯一标识,在某些情况下(比如新增数据),你的对象还没有存入数据库中,站在服务端角度,这个model还没有一个唯一标识,但是客户端为其生成了一个cid,这时,在客户端的角度,此时,这个model与其他同类的model没有什么区别,这样前端代码就可以方便的统一处理这一类model,而不用考虑特殊情况。
理想的情况下,我们希望,服务端使用服务端的标识,客户端使用客户端的标识
但是,如果数据需要与服务端进行交互,就需要建立两方数据的对应关系,这个就是id就作用了 。id存储了数据在服务端的唯一标识,比如服务端这个model的主键叫“id”,当客户端model更新时,可以使用这个id去更新服务端model的数据。
但是,我们服务端model的主键是由服务端开发人员取名,不一定就叫命名为“id”(好讨厌啊), 那么,客户端最好能指定model的id对应到服务端model的哪个主键,那么idAttribute的诞生就是理所当然了。
三者结合,让前端代码更方便,清晰,不得不说,这种设计很巧妙。
时间: 2024-10-08 11:34:31