Ember数据:在控制台中获取模型

时间:2013-11-18 16:31:05

标签: javascript ember.js console ember-data

我有JSBin中最简单的Ember应用程序。我试图做的就是找到一个模型。基于其他SO questions,我尝试了以下内容。

App.User.get('store').find('user', 1);
App.User.Store.find('user', 1);

我已定义App.Store,但App.Store在控制台中返回undefined。我显然错过了Ember模型的绝对最基本概念。请解释我5岁,好吗?我只是想返回一个user对象并在其上调用一个属性。

2 个答案:

答案 0 :(得分:12)

商店注入路线/控制器。在路径/控制器内,您可以使用this.store.find('user', 1)来获取模型。但是没有全球访问商店。

http://jsbin.com/aYIkAcUk/6/edit

如果你因触摸内脏而感到愧疚,请不要继续阅读。

为了透明起见,您可以在全球范围内获得商店。应用程序初始化并准备就绪后,您可以使用ember内部函数使用容器查找方法获取它。 (如果您需要知道应用程序何时就绪,可以使用应用程序ready挂钩。

 var store = App.__container__.lookup('store:main');
 var user = store.find('user', 1);

http://jsbin.com/aYIkAcUk/7/edit

答案 1 :(得分:9)

从Ember Data 2开始,数据存储现在作为服务处理。因此,要在全球范围内查找,声明现在是:

App.__container__.lookup('service:store')

其中App是您的Ember应用程序的名称。 Kingpin2k的答案不适用于Ember Data 2。