javascript - Ember.js 错误 : You must include an 'id' for an object passed to 'push'

标签 javascript json ember.js ember-data

我用来获取数据的 REST API 没有提供 Ember.js 所期望的正确 JSON。我们的数据中没有 id 值。

[{"objectID":"340907","owner":"Lokesh"},{"objectID":"340908","owner":"Cherukuri"}]

所以,我创建了一个序列化器:

序列化器/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')
});

这并没有解决问题。有人可以纠正我的错误吗?

最佳答案

我正在使用 mongo,在您的示例中我看到您使用了 ApplicationSerializer。我认为你需要使用以下

如果您使用 JSONSerializer 则

import DS from 'ember-data';
export default DS.JSONSerializer.extend({
  primaryKey: 'objectID'
});

如果您使用 REST 序列化程序

import DS from 'ember-data';
export default DS. RESTSerializer.extend({
  primaryKey: 'objectID'
});

我尝试搜索ApplicationSerializer类,但文档下没有提到它。这对我和 mongo 有用,我用它来更改为 _id

希望对你有帮助

关于javascript - Ember.js 错误 : You must include an 'id' for an object passed to 'push' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38755903/

相关文章:

javascript - 使用 jQuery 进行动态元素操作

javascript - 加载后移除 Cufon

json - 将 circe 中 json 对象的所有键从 `underscore` 转换为 `camel case`

php - 如何在 json 中输出 javascript 日期

javascript - Gridster - 保存 div 的 html 内容以动态加载网格

javascript - Angular 正则表达式测试输入的 ng-pattern 验证不一致

java - 我的 JSON 列表未显示在移动应用程序的 ListView 上,为什么?

ember.js - 玩 Ember.Object.reopen(),为什么我有这些结果?

javascript - 我可以通过引用不存在的内容来使 Ember 模板构建失败吗?

ember.js - TextField 类的 Ember.js 事件是什么