1 定义Collection,定义Collection时通常需要指定其扩展的Model
var Book = Backbone.Model.extend({
defaults: {
title: '',
author: ''
}
});
var BookShelf = Backbone.Collection.extend({
model: Book
});
2 向Collection中添加model
bookShelf.add(book);
bookShelf.add([book-array]);
3 从Collection中移除model
bookShelf.remove(book);
bookShelf.remove([book-array]);
4 获取Collection中的model
bookShelf.get(3); //id
5 事件监听
BookShelf.on('add', function(book){});
BookShelf.on('change:title', function(book){});
6 设置Collection
BookShelf.set([book-array]);
BookShelf.reset([book-array]);
BookShelf.reset();// 清空Collection,触发reset事件,而不触发add或remove事件
7 更新Collection
BookShelf.update([book-array]);
8 Underscore提供的方法
BookShelf.forEach(function(book){});
BookShelf.sortBy(function(book){
return book.get('title').toLowerCase();
});
BookShelf.map(function(book){});
BookShelf.max(function(book){
return book.id;
}).id;
BookShelf.min(function(book){
return book.id;
}).id;
BookShelf.pluck('title'); //返回Collection中各个model的title属性,形成数组
Bookshelf.any(function(book){
return book.id === 3;
});
Bookshelf.some(function(book){
return book.id === 3;
});
BookShelf.size();
//相当于
BookShelf.length;
BookShelf.isEmpty()
BookShelf.groupBy('key');
book.pick('key');
book.omit('key');
book.keys();
book.values();
book.pairs();
book.invert();
id, cid, idAttribute