Ember Data: Get a Model in the Console

耗尽温柔 提交于 2019-12-21 12:11:51

问题


I have the simplest possible Ember app in this JSBin. All I'm trying to do is find a model. Based on other SO questions, I've tried the following.

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

I've defined App.Store, but App.Store returns undefined in the console. I'm obviously missing the absolute most basic concepts of Ember models. Explain like I'm 5, please? I literally just want to return a user object and call a property on it.


回答1:


The store is injected to routes/controllers. Inside a route/controller you can use this.store.find('user', 1) to fetch a model. But there is no global access to the store.

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

If you feel guilty about touching the innards, which you should a bit, do not read on.

For transparency sake, you can get the store globally. After the application has initialized and is ready you can use the innards of ember to fetch it using the container lookup method. (If you need to know when the app is ready you can use the application ready hook.

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

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




回答2:


As of Ember Data 2, the data store is now handled as a service. Thus, to look it up globally, the statement is now:

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

Where App is the name of your Ember application. Kingpin2k's answer will not work with Ember Data 2.



来源:https://stackoverflow.com/questions/20052814/ember-data-get-a-model-in-the-console

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!