ember-dataによるモデルの登録・更新・削除 – Ember.js入門(22)
ヽ(*゚д゚)ノエンバー 1.6 comming soon!
渡辺です。 前回まではモデルの永続化の中で、取得系について解説してきました。 今回からは、モデルの永続化の中で、登録・更新・削除について解説していきます。
次のようにItemモデルが定義されているとします。
App.Item = DS.Model.extend({ name: DS.attr('string'), price: DS.attr('number') });
モデルの作成
モデルを生成する時は、StoreのcreateRecordメソッドを利用します。
var newItem = this.store.createRecord('item');
createRecordの第1引数にはモデル名を文字列で指定します。 この時、クライアントサイドで新しいItemオブジェクトが生成されます。 createRecordを実行しただけでは永続化(サーバサイドへの反映)は行われませんので注意してください。
モデル永続化は、後述のsaveメソッドを呼び出した時点で行われます。 saveメソッドの呼び出しは明示的に行わなければならない点も注意しましょう。
なお、newを使用してモデルを生成した場合、Storeの管理下に入らないため、モデルの永続化を行うことができません。
モデルの登録・更新・削除
モデルの登録と更新はModelのsaveメソッドで行います。 モデルの削除はdeleteRecordメソッドでモデルを削除状態とし、saveメソッドを呼び出します。
saveメソッドによる登録・更新
モデルの登録と更新は、Modelのsaveメソッドで行います。
item.save();
モデルが新規に作成された状態であれば登録が、モデルが既に登録済みの状態であれば更新が行われます。
deleteRecordメソッドによる削除
モデルを削除には、deleteRecordでモデルを削除状態とし、saveメソッドを実行します。
item.deleteRecord(); item.save();
一連の操作は、destroyRecordメソッドでも行えます。
item.destroyRecord();
ここまでのまとめ
長くなってしまうので、ここで一度まとめ、RESTFul APIのことは次回説明します。
操作 | メソッド |
---|---|
取得(全件) | var items = this.store.find('item'); |
取得(1件) | var item = this.store.find('item', 1); |
生成 | var item = this.store.createRecord('item'); |
更新/登録 | item.save(); |
削除 | item.deleteRecord(); item.save(); |