如何从应用程序的任何地方获取Ember Data“存储”,以便我可以执行store.find()?

时间:2013-09-12 01:09:07

标签: ember.js ember-data

使用最近的update,我知道在路由器和控制器中,我可以轻松地执行this.store.find('model')。但是我有一些需要调用find的函数,这些函数不在路由器和控制器中。那么如何从Ember应用程序的任何位置获取实例store

我知道最糟糕的是我能做App.__container__.lookup('store:main'),但我会尽量避开。

4 个答案:

答案 0 :(得分:10)

TRANSITION doc说你可以这样做将商店注入组件:

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

您可以将'component'更改为'view''model',但我不确定。

答案 1 :(得分:7)

你可以做到

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

如果您要使用特定属性进行过滤,则可以执行以下操作:

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

See more on this post

答案 2 :(得分:7)

您可以尝试

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

例如,这将以视图的形式出现。

答案 3 :(得分:1)

使用Ember数据1.0.0-beta.X

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