2011-01-28 9 views
5

Estoy tratando de usar Extjs con un modelo de vista de JavaScript. He tenido éxito al cargar tiendas usando un JsonReader y la clase ext.data.memoryproxy.Cómo escribir en un memoryproxy en Ext.js

Sin embargo, quiero escribir cambios en mi modelo de vista Javascript. Intenté agregar un jsonwriter a la propiedad del escritor de la tienda, pero esto no funciona. Me sale este error:

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.

Mi código es:

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

Cualquier ayuda en esto sería muy apreciada!

Respuesta

1

y MemoryProxy no funcionarán bien juntos. Ellos no están destinados a.
De los documentos JsonWriter,

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

JsonWriter extiende DataWriter. De 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.

No estoy seguro de cuál es su alto nivel de diseño/intención de evitar esto es, pero en este caso, tal vez usted puede obtener los registros de la tienda, modificarlos y comprometerse de nuevo a la tienda? (Puede hacer todas las operaciones CRUD directamente en la tienda)

+0

Pero tengo problemas de diseño de consulta de mis programadores de back-end. No pudieron responder lo suficientemente rápido desde el servidor, por lo que la paginación en la cuadrícula de salida debe hacerse a partir de todos los datos capturados por una (pero larga) solicitud. ¿Tiene ExtJs alguna solución para tales como prorblem? ¿O ineed para hacer memoria local de almacenamiento como Array, no Json? – lazycommit

+0

* Mi * intención de tener una tienda de memoria grabable sería evitar la solución dada en http://stackoverflow.com/a/5709096/476074 porque usa propiedades privadas. – AndreKR