[BackboneJS] id,cid,idAttribute 三者区别

  BackboneJS 中,"id","cid","idAttribute"三者区别,它们是否能够互相影响?

 

  BackboneJS Model 的 id 和 cid 都是应该是唯一的一个身份标识,它们都可以被用于从 collection 中选取 Model。

 

  cid 由 backbone.js 在客户端分配,这对于你的 model 还不具有实际的 id 时会非常有用,之所以你的 model 不具有 id 可能是由于你还未将你的 model 保存到服务器,又或者你在使用 localStorage 但你还未将 model 保存到 localStorage 中。

 

  id 则通常是由服务器端进行指派的,一般是你在数据库中的主键。(在你的 RESTful 服务器返回一个含有 id键的 JSON 对象,Backbone.js 会自动将其更新到 Model 中。)当然你也可以在创建 Model 的时候手工指派。

 

  idAttribute 则负责通知 backbone.js 使用服务器返回的 JSON 中的哪一个字段来更新 id 值,默认情况下它被设置为 "id"。对此官方文档的描述为:

 

  一个 model 的唯一标识符被存储在它的 id 属性中。如果你直接和一个使用不同唯一键的后端数据库进行通信,你可以设置 Model 的 idAttribute 将 model.id 映射到不同的键。

var Meal = Backbone.Model.extend({
    idAttribute: "_id"
});

var cake = new Meal({_id: 1, name: "Cake"});
alert("Cake id: " + cake.id);
posted @ 2014-04-14 18:37  iFantasticMe  阅读(980)  评论(0)    收藏  举报