O que estrutura json, deve o ember-dados "findMany" tem que sideload corretamente?

StackOverflow https://stackoverflow.com//questions/12679613

  •  12-12-2019
  •  | 
  •  

Pergunta

Eu estou fazendo a minha primeira temmuitos relação com ember-dados de e bateu o sempre divertido

"Uncaught De Erro:falha de asserção:O servidor retornou um hash com a tecla 0, mas você não tem mapeamentos"

Isso geralmente significa que eu não tenho a estrutura json, no que eu chamo de uma "brasa" formato amigável.

Eu estou construindo a minha própria RESTO adaptador para django usando o django resto do quadro, por isso estou curioso que isso deve parecer para sideload sem erro.

Atualmente o json vindo de volta, olha como o abaixo (claramente nenhum laço de volta para a sessão, mas talvez ember já sabe como ligar isso?)

[{"id":2, "nome":"FooBar"}]

Olhar para modelos como este

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')
});

Obrigado antecipadamente

Foi útil?

Solução

A estrutura json deve olhar como este

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

Encontrei este commit que mostra que eu só precisava quebrar a minha json dentro de um chamado dict

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

Portanto, este é meu costume json método de agora em minha django adaptador

 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]);
                }
            });
        }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top