![](/img/trans.png)
[英]how to use ember.js for accessing data through rest adapter and pass it to template
[英]How to use an adapter in ember
我正在尝试将数据从前端余烬应用程序发送到Rails API。 有问题的方法捐赠,位于自定义路线:
patch 'accounts/:id/donate' => 'accounts#donate'
为了对其进行调用,我知道我的余烬路由需要使用适配器来覆盖常规的修补方法,但这就是我的知识的终点。 这是我当前路线的状态:
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
donate(params){
console.log('hits');
console.log(params);
let patron = this.get('store').findRecord('account', 10);
// here is where I need to link to my adapter
patron.donate(params);
}
}
});
和我的适配器文件(我什至无法启动它,因此代码质量会很低):
import ApplicationAdapter from './application';
export default ApplicationAdapter.extend({
// Not super confident about this adapter, not am I super confident about how I
// am passing data through it.
donate(store, type, record) {
let api = this.get('host');
let serialized = this.serialize(record, {includeId: true});
let accountId = serialized.account_id;
let url = `${api}/accounts/${accountId}/donate`;
let data = {account: serialized};
return this.ajax(url, 'PATCH', {data});
}
});
使此功能正常工作的第一步是确保适配器可以正确调用服务器。 我将如何/在何处实现这一目标?
您已经发现,Ember的默认适配器假定一个非常特定的REST API资源模型( JSON API规范 )。 但是,关于Ember社区的好处是,如果存在一个常见问题,通常会有一个库可以提供帮助,并且具有基于“动作”的REST API也很常见。
tl; dr(如果可以在代码库中添加另一个库),请检出ember-api-actions
。 从粗略的角度看,它几乎不需要任何配置即可完全满足您的需求。 它在Ember Observer上也有很好的评级(似乎值得生产)。
在您的路线操作中,捐赠操作将调用商店对象的createRecord方法,如下所示:
this.store.createRecord('modelName', objectToBeSentToTheServer);
在您的适配器中,您将需要创建一个createRecord函数来处理来自路由的调用。
查看Ember Data API:
https://www.emberjs.com/api/data/
以下链接为您提供有关用于创建,更新和查找记录的适配器功能的详细信息:
https://www.emberjs.com/api/data/classes/DS.JSONAPIAdapter.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.