当前位置: 代码迷 >> 综合 >> Backbone笔记之二(Model/Collection)
  详细解决方案

Backbone笔记之二(Model/Collection)

热度:28   发布时间:2023-12-09 14:54:05.0

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
  相关解决方案