【发布时间】:2017-10-19 12:24:45
【问题描述】:
我用来获取数据的 REST API 没有像 Ember.js 所期望的那样提供正确的 JSON。我们的数据中没有 id 值。
[{"objectID":"340907","owner":"Lokesh"},{"objectID":"340908","owner":"Cherukuri"}]
所以,我创建了一个序列化器:
serializers/baddata.js
import DS from 'ember-data';
export default DS.JSONSerializer.extend({
primaryKey: 'objectID'
});
适配器/baddata.js
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
host: 'http://localhost:8080',
buildURL : function(modelName, id) {
return this.host + "/baddata/trains/"+ id;
}
});
models/baddata.js
import DS from 'ember-data';
export default DS.Model.extend({
owner: DS.attr('string')
});
这并没有解决问题。有人可以纠正我的错误吗?
【问题讨论】:
-
一旦你使用
primaryKey在你的序列化器中映射了ID,它现在被称为id,所以你不需要在你的模型中声明objectID,你应该参考代码中各处的相关字段为id。push然后应该可以正常工作。它将在到达服务器的途中被映射回primaryKey。 -
没有。它没有用。同样的错误
-
您使用的是哪个序列化程序(json, jsonapi, rest),这是您从 API 获得的完整响应吗?
-
我正在使用 JSONSerializer。是的,这是完全响应
标签: javascript json ember.js ember-data