我在一些控制器和路由中使用了一些自定义AJAX请求,例如:
var loginRoute = Ember.Route.extend({
actions: {
submitLogin: function(user, pass) {
var data = { username: user, password: pass };
Ember.$.post('http://192.168.2.10/api/v1/login', data).then();
}
}
});
这很好用,但在开发时我可能有不同的IP(例如更换路由器)
我希望能够访问我在扩展RESTAdapter时定义的URL(主机+命名空间),这样我只需要更改host
和/或namespace
一次,而不是每次我做自定义ajax请求的地方。
App.ApplicationAdapter = DS.RESTAdapter.extend({
host: 'http://192.168.2.10',
namespace: 'api/v1'
});
答案 0 :(得分:26)
证明您可以通过this.store.adapterFor('application')
新的submitLogin
方法可能如下所示:
submitLogin: function(user, pass) {
var data = { username: user, password: pass },
host = this.store.adapterFor('application').get('host'),
namespace = this.store.adapterFor('application').namespace,
postUrl = [ host, namespace, 'login' ].join('/'); // http://192.168.2.10/api/v1/login
Ember.$.post(postUrl, data).then();
}