Ext.data.DirectStore e Ext.Record

Secondo la documentazione di ExtJS per creare un Ext.data.DirectStore è necessario passare la configurazione fields che verrà poi internamente utilizzata per istanziare il Ext.data.JsonRecord associato allo store. Il parametro fields contiene, come suggerisce il nome, la definizione dei Ext.data.Field che verranno costruiti a partire dal Json ricevuto dal server. Il formato degli oggetti è esattamente lo stesso che viene utilizzato come parametro del metodo statico Ext.data.Record.create per ottenere un costruttore custom per le nostre entità.

var movieStore = new Ext.data.DirectStore({
    [...],
    fields: [
        { name: 'title', type:'string' },
        { name: 'year', type:'int' },
        { name: 'director', type:'string' },
        { name: 'summary', type:'string' },
        { name: 'rate', type:'int' }
    ]
});
Spesso capita però che la nostra entità venga già definita a livello globale nell'applicazione (magari incapsulata dento un package). Per non ripetere l'elenco dei campi due volte (in un ottica DRY) è possibile comunicare allo store la definizione dei campi in maniera dinamica partendo dal costruttore dell'entità in questione.

var Movie = Ext.data.Record.create([
    { name: 'title', type:'string' },
    { name: 'year', type:'int' },
    { name: 'director', type:'string' },
    { name: 'summary', type:'string' },
    { name: 'rate', type:'int' }
]);
 
var movieStore = new Ext.data.DirectStore({
    [...],
    fields: Movie.prototype.fields.items
});

Molto meglio no?

 
sviluppo/javascript/directstore-record.txt · Last modified: 2011/05/10 11:42 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki