我第一次与ember-data建立了很多关系并且总是很有趣
"未捕获错误:断言失败:您的服务器返回哈希值 键0但你没有映射"
这通常意味着我没有把json结构放在我称之为" ember"友好的格式。
我正在使用django rest框架为django构建我自己的REST适配器,所以我很好奇这应该是什么样的侧载而没有错误。
目前json的回归看起来如下(显然没有回到它的会议,但也许ember已经知道如何连接它?)
[{" id":2," name":" FooBar"}]
模型看起来像这样
CodeCamp.Session = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
room: DS.attr('string'),
desc: DS.attr('string')
});
CodeCamp.Speaker = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
session: DS.belongsTo('CodeCamp.Session')
});
CodeCamp.Session.reopen({
speakers: DS.hasMany('CodeCamp.Speaker')
});
提前谢谢
答案 0 :(得分:1)
json结构应如下所示
{ speakers: [{ id: 2, name: "FooBar" }] }
发现此提交显示我只需要将json包装在命名的dict
中https://github.com/Kurki/data/commit/f59ad5bc9718634b6f3d59356deae0bf97a1bbd5
所以这是我的django适配器中的自定义json方法
findMany: function(store, type, ids) {
var root = this.rootForType(type), plural = this.pluralize(root), json = {};
this.django_ajax(this.buildURL(root, ids), "GET", {
success: function(pre_json) {
json[plural] = pre_json;
this.sideload(store, type, json, plural);
store.loadMany(type, json[plural]);
}
});
}