如何从应用程序的任何位置获取Ember Data的"商店",以便我可以执行store.find()?

Hao*_* Li 15 ember.js ember-data

随着最近的更新,我知道在路由器和控制器中,我可以很容易地做到this.store.find('model').但是我有一些需要调用的函数find不在路由器和控制器中.那么如何store从Ember App中的任何地方获取实例?

我知道最糟糕的是我能做到最坏App.__container__.lookup('store:main'),但我会尽量远离那个.

Jer*_*een 10

过渡医生说,你可以做到这一点注入店成组件:

App.inject('component', 'store', 'store:main');
Run Code Online (Sandbox Code Playgroud)

你也许能够改变'component''view''model',但我不知道这一点.


Hao*_* Li 7

你可以做

App.Model.store.find('model')
Run Code Online (Sandbox Code Playgroud)

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

App.Model.store.find('model', {'attribute_name' : 'matching_to_this_value'})
Run Code Online (Sandbox Code Playgroud)

查看更多对这个职位.


小智 7

你可以尝试做

this.get('controller').get('store').find('model')
Run Code Online (Sandbox Code Playgroud)

例如,这将在视图中进行.