web-dev-qa-db-ja.com

store.find()を実行できるように、アプリケーションのどこからでもEmber Data "store"を取得する方法は?

最近の pdate で、ルーターとコントローラーでは、this.store.find('model')を簡単に実行できることがわかりました。ただし、ルーターやコントローラーにないfindを呼び出す必要のある関数がいくつかあります。では、Emberアプリのどこからでもインスタンスstoreを取得するにはどうすればよいですか?

App.__container__.lookup('store:main')を実行できる最悪の事態が発生することはわかっていますが、それを避けようとします。

15
HaoQi Li

[〜#〜] transition [〜#〜] ドキュメントによると、これを実行してストアをコンポーネントに挿入できます。

App.inject('component', 'store', 'store:main');

'component''view'または'model'に変更できる場合がありますが、それについてはよくわかりません。

10
Jeremy Green

あなたはやろうとすることができます

this.get('controller').get('store').find('model')

たとえば、ビューでは問題が発生します。

7
Simon Cateau

できるよ

App.Model.store.find('model')

フィルタリングする特定の属性がある場合は、次のことができます。

App.Model.store.find('model', {'attribute_name' : 'matching_to_this_value'})

この投稿の詳細を参照してください

7
HaoQi Li

Emberデータ1.0.0-beta.X

App.YourModelType.store.find("yourModelType", someId).then( 
  function(modelInstance) { 
  ...
  });
1
Abdull