使用最近的update,我知道在路由器和控制器中,我可以轻松地执行this.store.find('model')
。但是我有一些需要调用find
的函数,这些函数不在路由器和控制器中。那么如何从Ember应用程序的任何位置获取实例store
?
我知道最糟糕的是我能做App.__container__.lookup('store:main')
,但我会尽量避开。
答案 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'})
答案 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) {
...
});