2011-09-16 24 views
5

En Ext 3.x que podría conseguir una gran variedad de nombres de campo con esto:Extjs 4.0 tienda - cómo encontrar campos en la tienda (o modelo)

mystore.fields.keys 

¿Cómo se puede hacer esto en 4.0? Ni siquiera puedo ver cómo puedo obtener el modelo que está usando la tienda (ningún método 'getModel'). ¿Necesito encontrar un registro y obtener los campos de esa manera? Yo defino la tienda con:

Ext.define('AM.store.Equipments', { 
    extend: 'Ext.data.Store', 
    model: 'AM.model.Equipment', 

    mycustFunc: function() { 
      var myfields = this.fields.keys (fails!) 

EDIT: Gracias ... mirando en Firebug más Parece que esto se lo que quiero:

this.model.prototype.fields.keys 

Respuesta

9

Si bien no hay un método para la getModel() Almacénelo, el Proxy contiene el Modelo, de modo que puede simplemente usar store.getProxy().getModel() para buscar el Modelo y, por lo tanto, los campos del Modelo. Para replicar una tienda, sólo tiene que utilizar el modelo: originalStore.getProxy().getModel().modelName.

+0

Gracias ... mirando en Firebug más parece que este obtiene lo que quiere : this.model.prototype.fields.keys – amackay11

+0

sí, acabo de comprobar también, pensé que sería más simple: P ... lo hicieron más complicado – nscrob

0

puedo cambiar los campos de mi tienda,
así como así:

myStore.model.setFields(fields); 
Cuestiones relacionadas