Какую структуру json должен правильно загружать ember-data findMany?

Я делаю свои первые отношения hasMany с ember-data и всегда получаю удовольствие

«Неперехваченная ошибка: утверждение не удалось: ваш сервер вернул хэш с ключом 0, но у вас нет сопоставлений»

Обычно это означает, что у меня нет структуры json в том, что я называю «удобным для Ember» форматом.

Я создаю свой собственный адаптер REST для django, используя инфраструктуру отдыха django, поэтому мне любопытно, как это должно выглядеть для загрузки без ошибок.

В настоящее время возвращающийся json выглядит так, как показано ниже (явно нет привязки к сеансу, но, может быть, ember уже знает, как это подключить?)

[{"id": 2, "имя": "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')
});

заранее спасибо


person Toran Billups    schedule 01.10.2012    source источник


Ответы (1)


Структура json должна выглядеть так

{ speakers: [{ id: 2, name: "FooBar" }] }

Нашел эту фиксацию, которая показывает, что мне просто нужно было обернуть json внутри именованного словаря.

https://github.com/Kurki/data/commit/f59ad5bc9718634b6f3d59356deae0bf97a1bbd5

Итак, теперь это мой пользовательский метод json в моем адаптере django.

 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]);
                }
            });
        }
person Toran Billups    schedule 01.10.2012