Model
View的部分基本上就是这样了,现在开始来谈Model。
Model其实就是一条数据记录。只不过它不是一般的静态数据记录,它不但可以不限定数据结构,还可以自动与后端交互,甚至还可以绑定事件以实现相应View的自动更新。
最简单的Model就是这样:
var Foo = Backbone.Model.extend({});
// 或是初始化默认数据
var Foo = Backbone.Model.extend({defaults: {name: "hello",value: "233"}
});
// 或是运行时赋值。
// 比如这样:var foo = new Foo({name:"world", value:"874"});
// 或这样:var foo = new Foo;foo.set({name:"world", value:"874"});
可以显示一下结果看看效果:
$("#body").text(JSON.stringify(foo.toJSON()));
Collection
Collection就是一个Model集合。因为Model是一条数据记录,也就是说,Collection相当于是一个数据集。
同样,一个最简单的Collection如下:
var FooList = Backbone.Collection.extend({model: Foo
});
之后你可以往里增加数据:
var foos = new FooList;foos.add([{name:"hello", value:"233"},{name:"world", value:"874"}]);$("#body").text(JSON.stringify(foos.at(0)));
更新删除的方式请参考官方文档。
注意,每个Model记录会自动有一个id/cid的属性,是记录的唯一标志。比如:
foos.get(foos.at(0).cid)
Model的事件绑定
为了能在数据变更之后及时更新View上的显示,那就需要通过事件机制来处理。
var Task = Backbone.Model.extend({initializ