
はじめに
前回の続きです。
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を見ていきます。