【问题标题】:Ember Data: Get a Model in the ConsoleEmber 数据:在控制台中获取模型
【发布时间】:2013-11-18 16:31:04
【问题描述】:

我在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 对象并在其上调用一个属性。

【问题讨论】:

    标签: javascript ember.js console ember-data


    【解决方案1】:

    存储被注入到路由/控制器。在路由/控制器中,您可以使用 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

    【讨论】:

    • 我知道 Ember Data 一直在变化,而本教程已经有几个月的历史了,但在here 那里我看到了一个在控制台中获取用户的示例。 Ember Data 不再支持这个了吗?
    【解决方案2】:

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

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

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

    【讨论】:

    • 最后,一个最新的信息。谢谢!这应该是新接受的答案。
    猜你喜欢
    • 2015-08-16
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    相关资源
    最近更新 更多