Backbone.js サンプルアプリケーション #2

はじめに

前回の続きです。

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を見ていきます。