Ember Dataは、Ember.jsのデータ永続化ライブラリです。
保存対象を抽象化していて、REST以外のストレージへの入出力もサポートしています。
readmeによると、"This release is definitely alpha-quality" とのことで、まだ正式リリースには遠いようです。
今日は、Ember DataのCRUDの方法を見ていきます。
DS.Store
App.store = DS.Store.create({
revision: 6
});
DS.Storeは、ストレージアクセス層です。revisionは決め打ちです。実装されている機能ごとに、revisionが設定されているようです。デフォルトはRESTでの通信を行います。
Defining Models
DS.Modelを継承します。
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
birthday: DS.attr('date'),
fullName: function() {
return this.get('firstName') + ' ' + this.get('lastName');
}.property('firstName', 'lastName')
});
CRUD
idで検索します。
var model = App.store.find(App.Person, 1);
検索条件指定もできます。
App.people = App.store.find(App.Person, { page: 1 });
全件取得です。
var people = App.store.findAll(App.Person);
レコードを作成します。実際に保存するのは、DS.Storeのcommitメソッドを呼んだ時です。
var wycats = App.store.createRecord(App.Person, { name: "Brohuda" });
レコードの更新は、対象のDS.Modelオブジェクトの値を変更し、DS.Storeのcommitメソッドを呼んだ時点で行われます;。
deleteRecord()メソッドで、レコードを削除します。実際に保存するのは、DS.Storeのcommitメソッドを呼んだ時点で行われます。
var person = App.store.find(App.Person, 1);
person.deleteRecord();
今日の記事は以上です。
commitを呼んだ時点で、すべてのDS.Modelオブジェクトを更新するっていうのはどうなんでしょう。これで十分にまかなえるのかな。実際にアプリを作ってみないとわからないですね。