1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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オブジェクトを更新するっていうのはどうなんでしょう。これで十分にまかなえるのかな。実際にアプリを作ってみないとわからないですね。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?