2016-06-01 4 views
0

私と私の同僚は、話している2つの異なるapiエンドポイントを持つアプリケーションを構築しています。残念ながら、両方のエンドポイントに対して複数の要求を行い、答えをまとめて1つの大きなデータ構造にする必要があることがあります。ストアで新しいメソッドを作成しますか?

これまでは、ApplicationAdapterでquery-methodをオーバーライドしていましたが、時にはリクエストを1回だけ行う必要があるため、この問題が発生しました。アダプタで

this.get('store').multipleQuery(somemodel, params); 

、作成:

this.get('store').query(somemodel, params); 

は、我々が行うことができるようにしたい:

は現在ストアに新しいメソッドを追加するので、代わりにできるようにしたいです新しいメソッドは単純に追加するだけで簡単です。しかし、ストア上で新しいメソッドを作成するにはどうすればいいのですか?アダプターが拡張クラスを使用する方法を確認するにはどうすればよいですか?あなたはそれをオーバーライドして拡張することができるように

答えて

2

まあ、店はちょうどサービスです:

サービス/ store.js

import DS from 'ember-data'; 

export default DS.Store.extend({ 
    multipleQuery() {...} 
}); 

しかし、あなたが理解する必要があり、アダプターは使用しません。ストアでは、ストアがアダプタを使用しています。

また、プライベートAPIを使用する必要があることもわかります。私はread the code店舗の仕組みを学ぶでしょう。

しかし、私はあなたがちょうどアダプターを使うべきだと思います。なぜちょうどstore.query('model', {multiple:true})かそのようなことをしないのですか?

+0

答えをいただきありがとうございます。これは私たちが実現したものです。プライベートAPIにはいくつかの問題がありました。時間の経過とともに変更する必要があるため、アダプターを使用して追加オプションを提供するだけです。 – Ms01

関連する問題