下面,我们再去创建一个表示任务列表的集合,在 Backbone 里面,数据的列表就是用集合来表示的,英文是 Collection ... 应用的集合,可以放在 js 这个目录下面的 Collections 这个目录的里面。
在这个目录里面,之前我们已经创建好了一个叫 TodoCollection.js 的文件 ... 打开这个文件 ... 然后把集合的代码放到这个文件里面。
在文件的顶部,同样需要一个表示命名空间的对象 ...
var app = app || {};
然后把要创建的集合作为这个对象的一个属性 ...
app.TodoCollection ... TodoCollection 就是要创建的这个集合的名字 ... 创建一个 Backbone 的集合,可以让它等于 Backbone 的 Collection 的 extend ..
app.TodoCollection = Backbone.Collection.extend({});
在这个集合里面,先去指定一下跟这个集合相关的模型是哪个 ... 添加一个 model 属性 ... 让它的值等于 app.Todo ...
model: app.Todo;
这个 app.Todo 就是在上一个视频我们创建的用来表示任务的模型。这样,在用这个集合里面的模型,都会认为是 Todo 这个类型的模型。
localStorage
在我们的这个小应用里面,用到了 Backbone 的 localStorage 插件 ... 也就是所有要处理的数据,都会存储到浏览器的 localStorage 里面。
想要使用它,我们需要在集合里面,去新建一个 localStorage .. 在这里,添加一个 localStorage 属性 ... 等于 new Backbone.LocalStorage('todo') .. 这里的 todo ,有点像是一个存储的数据的前缀 ... 也可以把它想像成是一个命名空间,也就是为了避免冲突,起的一个名字 ...
localStorage: new Backbone.LocalStorage('todo'),
新建集合实例
在这个文件的下面,去实例化一下这个集合 ... 也就是根据这个集合去创建一个集合的对象 ...
app.todoList = new app.TodoCollection;
app.todoList 就是我们创建的一个集合对象 ... 在应用里面,可以用到它 ...
这里创建的这个集合,在后面我们还会再回来继续去修改它 ...