Joe*_*e B 16 ember.js ember-data
我在一些控制器和路由中使用了一些自定义的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();
}
}
});
Run Code Online (Sandbox Code Playgroud)
这工作正常,但在开发时我可能有一个不同的IP(例如更改路由器),我希望能够访问我在扩展RESTAdapter时定义的URL(主机+命名空间),这样我只需要更改host和/或namespace一次,而不是我做自定义ajax请求的每个地方.
App.ApplicationAdapter = DS.RESTAdapter.extend({
host: 'http://192.168.2.10',
namespace: 'api/v1'
});
Run Code Online (Sandbox Code Playgroud)
Joe*_*e B 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();
}
Run Code Online (Sandbox Code Playgroud)