2011-01-28 14 views
5

Sto provando a utilizzare Extjs con un modello di visualizzazione javascript. Ho avuto successo con il caricamento dei negozi utilizzando un JsonReader e la classe ext.data.memoryproxy.Come scrivere su un memoraproxy in Ext.js

Tuttavia, desidero scrivere modifiche al mio viewmodel Javascript. Ho provato ad aggiungere un jsonwriter alla proprietà writer del negozio, ma questo non funziona. Ottengo questo errore:

uncaught exception: Ext.data.DataProxy: DataProxy attempted to execute an API-action but found an undefined url/function. Please review your Proxy url/api-configuration.

il mio codice è:

var service = viewmodel.selectedService.analytes; 

    var serviceResultsStore = new Ext.data.Store({ 
     reader: new Ext.data.JsonReader({ 
      fields: ['Analyte', 'Units', 'Value', 'Rounded', 'PossibleValues'] 

     }), 
     proxy: new Ext.data.MemoryProxy(service), 
      writer: new Ext.data.JsonWriter({ 
        encode: false, 
        writeAllFields:true 
       }) 

qualsiasi aiuto su questo sarebbe molto apprezzato!

risposta

1

JsonWriter e un MemoryProxy non funzioneranno bene insieme. Non sono destinati a
Dalle JsonWriter documentazione,

DataWriter extension for writing an array or single Ext.data.Record object(s) in preparation for executing a remote CRUD action.

JsonWriter estende DataWriter. Da DataWriter docs -

Ext.data.DataWriter facilitates create, update, and destroy actions between an Ext.data.Store and a server-side framework. A Writer enabled Store will automatically manage the Ajax requests to perform CRUD actions on a Store.

Non sono sicuro che cosa il vostro alto livello di progettazione/intento intorno a questo è, ma in questo caso, forse è possibile ottenere i record dal negozio, li modifica e li impegnarsi al negozio? (È possibile eseguire tutte le operazioni CRUD direttamente nel negozio)

+0

Ma ho problemi di progettazione delle query dai miei programmatori back-end. Non potevano rendere la risposta dal server abbastanza veloce, quindi l'impaginazione nella griglia di output dovrebbe essere presa da tutti i dati taked per una (ma lunga) richiesta. ExtJs ha qualche soluzione per simili prorblem? O sono necessari per creare memoria locale come Array, non Json ?? – lazycommit

+0

* La mia intenzione * di avere un archivio di memoria scrivibile sarebbe di evitare la soluzione alternativa fornita in http://stackoverflow.com/a/5709096/476074 perché utilizza proprietà private. – AndreKR