我想获取控制器或组件中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
有什么办法做到(无论多么肮脏/肮脏/令人作呕)吗?谢谢!
编辑:正确的答案是使用您可以从其他地方访问的值初始化适配器,例如下面指出的Kingpin2k。我最终创建了一个具有常量值的对象,并在两种情况下都引用了它。
App.__container__.lookup('adapter:application').host
示例:http://emberjs.jsbin.com/OxIDiVU/978/edit
老实说,您应该将其定义为应用程序上的一个属性,并在适配器中也使用该属性,这样您就可以将其从应用程序中删除而不必这样做。
App = Ember.Application.create({
applicationAdapterHost: '/foo'
});
App.ApplicationAdapter= DS.RESTAdapter.extend({
host:App.applicationAdapterHost
});
如您所见,您可以App.applicationAdapterHost
随时随地轻松使用它
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句