Collection ,中文可以翻译成集合,在 Backbone 里面,集合就是一些模型的组合。比如在我们的这个笔记应用里,单个的笔记可以用模型来表示,把多个笔记组合在一起,就是一个集合了。
下面,我们可以去给 Note 这个模型,去创建一个集合。
这个集合可以叫做 NoteCollection ... 让它去继承 Backbone 的 Collection ...
var NoteCollection = Backbone.Collection.extend({})
在这个集合里,可以设置一下 model 属性 .. 去指定一个跟这个集合相关的模型。这里我们设置成 Note ...
model: Note
在下面,我们去创建几个模型 ... var note1 等于 new Note ... 设置一下模型里的属性 ... 这里我们可以添加一个 id 属性,这个属性的值可以标示模型的唯一性。
在集合里面,使用这个 id ,我们可以得到对应的模型。
var note1 = new Note({id: 1, title: '西红柿炒鸡蛋的作法'});
var note2 = new Note({id: 2, title: '周六参加朋友的婚礼'});
var note3 = new Note({id: 3, title: '晚上回家洗尿布'});
这里我们创建了三个模型,note1,note2,还有 note3 ... 保存一下 ..
然后回到浏览器 ...
打开控制台 ... 然后去新建一个集合的实例 .. var noteCollection .. 这个集合可以叫做 noteCollection ...
var noteCollection = new NoteCollection
再看一下这个集合 ...
noteCollection
现在这个集合里是空的 ... length 属性的值是 0 ... models 里面,也没有东西 ...
添加模型
在创建集合的时候,我们就可以给这个集合里面添加一些模型 ... 刷新一下 ...
两重新去创建这个集合 ... 这次,给它一个数组 参数 ... 这个数组就是要包含在这个集合里的模型 ... 之前我们已经创建了几个模型 ... note1, note2 ,还有 note3 ...
我们先把 note1 还有 note2 这两个模型放到这个集合里面 ...
var noteCollection = new NoteCollection([note1, note2])
回车 .. 再看一下这个集合 ...
noteCollection
你会发现,length 属性的值是 2 ,表示这个集合里面有两个模型 ... 在 models 属性里面,会包含这两个模型 ...