ExtJS lance exception « realize a été appelée avec non valide les données à distance » sur la création réussie de l'enregistrement
-
24-09-2019 - |
Question
J'utilise ExtJS dans une application monorail. J'utilise un JsonStore de persister données à mon contrôleur. J'ai lu, et supprimer la mise à jour fonctionne correctement. Mais je ne peux pas sembler comprendre comment formater ma réponse dos crée. À l'heure actuelle, Firebug me donne l'erreur suivante:
exception uncaught: Ext.data.DataReader: #realize était appelé avec non valide les données à distance. S'il vous plaît voir la documentation pour DataReader # réaliser et examiner votre configuration DataReader.
Je suis déconcerté au sujet de WTF cela signifie erreur. Quelqu'un at-il des pointeurs? bits correspondants de code ci-dessous:
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 }
]
});
Ma réponse actuelle ressemble à ceci, mais cela après beaucoup d'essais et d'erreurs, il est donc prolly lavé au jet.
{"success":true,"message":"OK!","undefined":[]}
La solution
Vous devez retourner les enregistrements dans le retour objet JSON.
Allez à l'exemple suivant de mon livre, Ext JS en action, qui montre comment utiliser les données de l'écrivain pour les actions crud.
http://extjsinaction.com/examples/chapter08/usingWriterWithHttpProxy.html
clic droit pour insérer un nouvel enregistrement. Observez les années req Ajax de Firebug et vous verrez en action.