ember.js - ember - ¿Cómo se accede al host y al espacio de nombres de RESTAdapter dentro de una ruta o controlador?
jsonapiadapter ember (1)
Tengo algunas solicitudes AJAX personalizadas que uso dentro de algunos controladores y rutas, por ejemplo:
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();
}
}
});
Esto funciona bien, pero durante el desarrollo puedo tener una IP diferente (por ejemplo, cambiar los enrutadores) y me gustaría poder acceder a la URL (host + namespace) que definí cuando extendí el adaptador RESTA para que solo tenga que cambiar el host
y / o namespace
una vez, en lugar de cada lugar donde hago una solicitud de ajax personalizada.
App.ApplicationAdapter = DS.RESTAdapter.extend({
host: ''http://192.168.2.10'',
namespace: ''api/v1''
});
Resulta que puede acceder al Adaptador desde la tienda a través de this.store.adapterFor(''application'')
El nuevo método submitLogin
podría verse así:
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();
}