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