Ho una domanda riguardante l'ereditarietà multipla in ExtJS. Mentre so che posso semplicemente duplicare il codice per farlo accadere, ma voglio sapere se c'è un modo per codificarlo in modo più efficiente.Extjs ereditarietà multipla?
Ho un componente personalizzato GridPanel
nel mio framework, chiamato Kore.ux.grid.GridPanel
. Estende Ext.GridPanel
con funzionalità aggiuntive comuni e fornisce un'interfaccia per le azioni REST.
Poco dopo, il mio collega voleva che anche lo EditorGridPanel
fosse implementato nello stesso modo, cioè voleva che fosse modificabile e, allo stesso tempo, fosse in grado di eseguire facilmente azioni di REST.
La mia domanda è, c'è un modo per estendere lo Ext.EditorGridPanel
per attivare le funzionalità personalizzate Kore.ux.grid.GridPanel
?
Ci scusiamo per eventuali errori grammaticali e posso riformularlo se è confuso. Grazie!!
EDIT
I Googled di nuovo, e ho trovato le discussioni dicendo che è impossibile. C'è un modello di codifica migliore che dovrei seguire se ho questo problema?
Grazie!
modificare nuovamente
Mi dispiace tanto ho trovato la struttura che si adatta a me .. Qui è il metodo che ho trovato utile per me:
var Common = function(){} //abstract class
Ext.apply(Common.prototype, {
a : function(){},
b: function(){}...
});
Ext.ux.SomePanelA = Ext.extend (Ext.Panel, {
stuff : ............
});
Ext.ux.SomePanelB = Ext.extend (Ext.Panel, {
diffStuff : ............
});
Ext.applyIf(Ext.ux.SomePanelA.prototype, Common.prototype);
Ext.apply(Ext.ux.SomePanelB.prototype, Common.prototype);
Source Code: http://www.sencha.com/forum/showthread.php?48000-multiple-inheritance&p=228271&viewfull=1#post228271
di nuovo Si prega di fornire suggerimenti utili se pensi di avere una soluzione migliore :) Grazie!
PLUGIN! Perché dimentico la sua esistenza !! Grazie per il suggerimento :) Vedremo come lo incorporo nel framework.Grazie :) –
Ma questo potrebbe non essere adatto al mio caso in quanto il mio GridPanel personalizzato fornisce pagingToolbar personalizzato, pulsanti predefiniti, casella di ricerca, REST ... ecc. Il plugin potrebbe non essere il modo :) Grazie per il suggerimento comunque! –
Perché no? È possibile accedere a questi componenti personalizzati dal plug-in per associare loro le funzionalità. Dopotutto, ciò che fa il plugin è in effetti 'Ext.apply()' proprio come lo si fa ora. Aggiunge solo un po 'più robusto e facile da usare API per questo. – Mchl