Adapter と Fixture Adapter と REST Adapter の違いは何ですか? また、それぞれをいつ使用するのですか?
1 に答える
DS.FixtureAdapter
(またはDS.FixtureAdapter.create()
) バックエンドとの通信を (まだ?) 気にしないが、データを「フィクスチャ」としてクライアントに保存する場合に使用します。モデルを宣言したら:
App.Thing = DS.Model.extend({
name: DS.attr('string'),
// ...
});
フィクスチャを定義できます:
App.Thing.FIXTURES = [
{
id: 1,
name: '...',
// ...
},
{
id: 2,
name: '...',
// ...
},
];
そして、それらに対して ember-data メソッド (例:App.Thing.findAll()
など) を使用して操作することができますが、もちろん、ページが存続している間 (つまり、javascript 環境) しか存続しません。
DS.RestAdapter
使用可能ですが、明らかにまだ開発中であり、Rails API にうまく適合するように設計されていますが、おそらく、使用している RESTful API で動作するように変更/拡張できます。を呼び出して処理することと、 をApp.Thing.findAll()
呼び出して処理することを知っています。これは相対パスであり、渡す名前空間パラメーターに追加されます。/things
App.Thing.find(12)
/things/12
App.store = DS.Store.create({
revision: 4,
adapter: DS.RestAdapter.create({
namespace: 'http://what.ever/api/v1'
})
});
DS.Adapter
かなり抽象的です。前述の組み込みアダプターのスーパークラスです。どちらもニーズに合わない場合は、独自に実装することをお勧めします。
App.adapter = DS.Adapter.create({
find: function(store, type, id) {
// ...
jQuery.get( ... , function(data) {
store.load(type, id, data);
});
},
createRecord: function(store, type, model) {
// ...
jQuery.post( ... , function(data) {
store.didCreateRecord(model, data);
});
},
// ...
});
App.store = DS.Store.create({
revision: 4,
adapter: App.adapter
});
それが役立つことを願っています。詳細については、 https://github.com/emberjs/dataの readme ドキュメントを参照してください。