Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 以编程方式访问重启适配器的主机地址_Ember.js_Ember Data - Fatal编程技术网

Ember.js 以编程方式访问重启适配器的主机地址

Ember.js 以编程方式访问重启适配器的主机地址,ember.js,ember-data,Ember.js,Ember Data,我想获取控制器或组件中REST适配器的主机地址 我正在使用Ember CLI,并按照如下方式设置适配器: export default DS.RESTAdapter.extend({ host: 'http://localhost:9000' }); 我知道有人问过这个问题,但在最近的Ember 1.6.0中,这些方法都不起作用 我尝试了以下所有方法: DS.RESTAdapter.prototype.url DS.RESTAdapter.prototype.host App.__cont

我想获取控制器或组件中REST适配器的主机地址

我正在使用Ember CLI,并按照如下方式设置适配器:

export default DS.RESTAdapter.extend({
  host: 'http://localhost:9000'
});
我知道有人问过这个问题,但在最近的Ember 1.6.0中,这些方法都不起作用

我尝试了以下所有方法:

DS.RESTAdapter.prototype.url
DS.RESTAdapter.prototype.host
App.__container__.lookup('store:main').get('adapter.url')
App.__container__.lookup('store:main').get('adapter.host')
DS.defaultStore.adapter.url
DS.defaultStore.adapter.host
有没有什么办法(无论多么肮脏/烦人/恶心)做到这一点?谢谢


编辑:正确的答案是使用您可以从其他地方访问的值初始化适配器,如下所述。我最终创建了一个具有常量值的对象,并在这两种情况下引用它。

App.\uuu容器\uuuu.lookup('adapter:application')。host

例如:

老实说,你应该在你的应用程序中将它定义为一个属性,并在你的适配器中使用该属性,这样你就可以从应用程序中获取它,而不必这样做

App = Ember.Application.create({
  applicationAdapterHost: '/foo'
});

App.ApplicationAdapter= DS.RESTAdapter.extend({
  host:App.applicationAdapterHost
});
如您所见,您可以随时使用
App.applicationAdapterHost
轻松获取它


顺便说一句,我同意在初始化适配器和从其他地方访问它时使用对常量值的公共引用是最好的选择。我想知道为什么我没有想到这一点?:)由于某些原因,my ember component ApplicationAdapter(通过ES6在顶部导入)中的headers属性未定义ApplicationAdapter.prototype.headers是否使用所有信息创建一个新问题?