はじめに
前回の続きです。
Todoモデルを管理するためのCollectionのコードです。
このコレクションはローカルストレージを使用して永続化します。
model: Todo, localStorage: new Backbone.LocalStorage("todo-backbone"), done: function(){ return this.where({done: true}); }, remaining: function(){ return this.without.apply(this, this.done()); }, nextOrder: function(){ if(!this.length) return 1; return this.last().get('order') + 1; }, comparator: 'order'
コード解説
model: Todo
これがTodoモデルのコレクションであることを宣言しています。
localStorage: new Backbone.LocalStorage(“todos-backbone”)
Backbone.LocalStorageは、Backbone.jsのローカルストレージのアダプタです。
Todoをtodos-backbone名前空間に保存することを宣言しています。
done: function(){
return this.where({done: true});
}
完了したTodo(done=true)の一覧を取得します。
remaining: function(){
return this.without.apply(this, this.done());
},
完了していないTodoの一覧を取得します。
nextOrder: function(){
if(!this.length) return 1;
return this.last().get(‘order’) + 1;
}
Todoの順序性を保つために、連番を取得します。1つもTodoが無ければ1を返し、それ以外は最後のTodoの番号+1を返します。
comparator: ‘order’
モデルがorder属性の順にソートされるように指定しています。
次はViewを見ていきます。