2010-03-05 7 views
0

J'utilise extjs dans une application de monorail. J'utilise un JSONStore pour conserver les données à mon contrôleur. J'ai lu, mis à jour et supprimé fonctionne correctement. Mais je n'arrive pas à comprendre comment reformater ma réponse sur les créations. À l'heure actuelle, Firebug me donne l'erreur suivante:Extjs renvoie l'exception "réaliser a été appelé avec des données distantes non valides" lors de la création réussie de l'enregistrement

uncaught exception: Ext.data.DataReader: #realize was called with invalid remote-data. Please see the docs for DataReader#realize and review your DataReader configuration.

Je suis déconcerté au sujet de WTF cela signifie erreur. Quelqu'un at-il des pointeurs? bits pertinents 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":[]} 

Répondre

2

Vous aurez besoin de retourner les enregistrements dans le retour objet JSON.

Accédez à l'exemple suivant dans Mon livre, Ext JS in Action, qui montre comment utiliser l'enregistreur de données pour les actions crud.

http://extjsinaction.com/examples/chapter08/usingWriterWithHttpProxy.html

clic droit pour insérer un nouvel enregistrement. Observez les req's Ajax de firebug et vous le verrez en action.

+0

c'est exactement ce dont j'avais besoin merci! book == purchased.now – NotMyself

+0

Une réponse acceptée * et * une vente! –