Backbone.js浅析(Backbone.Collection)

Collection是同一类Model的集合,比如Model是动物,Collection就是动物园;Model是单个的人,Collection就是一家公司。

var Song = Backbone.Model.extend({});
var Album = Backbone.Collection.extend({
    model: Song
});

上面代码中,Song是Model,Album是Collection,而且Album有一个model属性等于Song,因此表明Album是Song的集合。
add方法,remove方法
Model的实例可以直接放入Collection的实例,也可以用add方法添加。

var song1 = new Song({
    id: 1 ,
    name: "歌名1",
    artist: "张三" 
});
var song2 = new Music ({
    id: 2,name: "歌名2",
    artist: "李四" 
});
var myAlbum = new Album([song1, song2]);
var song3 = new Music({ 
    id: 3, 
    name: "歌名3",
    artist:"赵五"
});
myAlbum.add(song3);

remove方法用于从Collection实例中移除一个Model实例。

myAlbum.remove(1);

上面代码表明,remove方法的参数是model实例的id属性。
get方法,set方法
get方法用于从Collection中获取指定id的Model实例。

myAlbum.get(2)

fetch方法
fetch方法用于从服务器取出Collection数据。

var songs = new Backbone.Collection;
songs.url = '/songs';songs.fetch();

Backbone.events

var obj = {};
_.extend(obj, Backbone.Events);
obj.on("show-message", function(msg) {
    $('#display').text(msg);
});
obj.trigger("show-message", "Hello World");

你可能感兴趣的:(Backbone.js浅析(Backbone.Collection))