ExtJS getta eccezione “realizzare è stato richiamato con validi remoto dei dati” sulla creazione di successo del disco
-
24-09-2019 - |
Domanda
Sto usando ExtJS in un'applicazione monorotaia. Sto usando un JsonStore a persistere indietro i dati al mio controller. Ho letto, di aggiornamento e di lavoro di eliminazione correttamente. Ma io non riesco a capire come formattare le spalle risposta su crea. Attualmente, Firebug mi dà il seguente errore:
eccezione non rilevata: Ext.data.DataReader: #realize era chiamato con remote-dati non validi. Si prega di consultare la documentazione per DataReader # realizzare e revisione vostro DataReader configurazione.
Io sono sconcertò circa WTF questo mezzo di errore. Qualcuno ha puntatori? bit rilevanti di codice qui sotto:
var proxy = new Ext.data.HttpProxy({
api: {
read: '../foo/bar.rnr',
create: '../foo/CreateBar.rnr',
update: '../foo/UpdateBar.rnr',
destroy: '../foo/DeleteBar.rnr'
}
});
var writer = new Ext.data.JsonWriter({
encode: true,
writeAllFields: true,
listful: true,
destroyRecord: function(rec) {
return this.toHash(rec);
}
});
var store = new Ext.data.JsonStore({
autoLoad: true,
autoSave: false,
url: '../foo/bar.rnr',
method: 'get',
baseParams: { Id: pageParameters.Id },
proxy: proxy,
writer: writer,
id: 'Id',
fields: [
{ name: 'Id', type: 'int' },
{ name: 'Name', type: 'string' },
{ name: 'Note', type: 'string', defaultValue: null }
]
});
Il mio attuale aspetto di risposta come questo, ma questo è dopo un sacco di tentativi ed errori, quindi è prolly hosed.
{"success":true,"message":"OK!","undefined":[]}
Soluzione
È necessario restituire i record in oggetto JSON ritorno.
Vai al seguente esempio dal mio libro, Ext JS in azione, che mostra come usare scrittura di dati per le azioni CRUD.
http://extjsinaction.com/examples/chapter08/usingWriterWithHttpProxy.html
Tasto destro del mouse per inserire un nuovo record. Osservare il req Ajax è da Firebug e vedrete in azione.