我正在尝试编写一个与使用 Django-Rest-Framework 开发的 REST api 对话的 Ember CLI 应用程序。 我尝试将 ember-django-adapter 作为我的 ember 应用程序的数据适配器,但是我找不到关于如何配置和编写模型以使用此数据适配器的示例代码。有人可以帮忙吗? 这是 EDA 代码 https://github.com/dustinfarris/ember-django-adapter .
此外,我在 ember 应用程序端所做的就是创建新应用程序,并按照此处的建议更改配置 http://dustinfarris.com/ember-django-adapter/configuring/ :
if (environment === 'development') {
ENV.APP.API_HOST = 'http://localhost:8000';
}
if (environment === 'production') {
ENV.APP.API_HOST = 'https://api.myproject.com';
ENV.APP.API_NAMESPACE = 'v2';
}
但是这个文档并没有说明如何为 ember 配置数据适配器!如果有办法让 ember js 和 django-rest-framework 对话,请告诉我。
谢谢。
请您参考如下方法:
在使用 Ember-data 之前,我建议您使用 jQuery 创建一个基本的 Ajax 调用。
- 第 1 步(使用 jQuery 的基本 AJAX 调用):
route.js:
model() {
return Ember.$.getJSON("/api/v1/foo");
}
- 第 2 步(使用
ActiveModelAdapter使用正确的适配器创建模型foo):
models/foo.js:
import DS from 'ember-data';
var attr = DS.attr;
export default DS.Model.extend({
bar: attr('string'),
isTest: attr('boolean')
});
适配器/foo.js:
import DS from 'ember-data';
import config from 'shippo-frontend/config/environment';
import Ember from 'ember';
export default DS.ActiveModelAdapter.extend({
namespace: 'api/v1',
host: apiUrl
});
- 第 3 步(用 Ember-data 调用替换您的 jQuery 调用):
route.js:
model() {
return this.get('store').findAll('foo');
}
- 注意事项:
active-model-adapter允许您将 snake_keys 转换为 camelCaseKeys。 https://github.com/ember-data/active-model-adapter- 如果您需要对来自 Django 的数据进行其他修改,请创建一个
serializers/foo.js并尝试使用负载。
