Tengo una pregunta sobre la herencia múltiple en ExtJS. Aunque sé que puedo simplemente duplicar el código para que suceda, pero quiero saber si hay alguna forma de codificarlo de manera más eficiente.herencia múltiple Extjs?
Tengo un componente personalizado GridPanel
en mi marco, llamado Kore.ux.grid.GridPanel
. Extiende Ext.GridPanel
con funcionalidades extra comunes y proporciona una interfaz para acciones de REST.
Poco tiempo después, mi colega quería que también se implementara EditorGridPanel
de la misma manera, es decir, quiere que se pueda editar y, al mismo tiempo, tener la capacidad de realizar acciones de REST fácilmente.
Mi pregunta es, ¿hay alguna manera de que pueda extender Ext.EditorGridPanel
para tomar las funcionalidades personalizadas Kore.ux.grid.GridPanel
?
Disculpa las errores de gramática y puedo volver a formularlas en caso de confusión. ¡¡Gracias!!
EDITAR
Busqué en Google de nuevo, y encontraron hilos diciendo que es imposible. ¿Hay algún patrón de codificación mejor que debería seguir si tengo este problema?
Gracias!
nuevo EDIT
Lo siento me encontré con la estructura que se adapte a mí .. Este es el método que encontré útil para mí:
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);
Código Fuente: http://www.sencha.com/forum/showthread.php?48000-multiple-inheritance&p=228271&viewfull=1#post228271
favor de nuevo brinda sugerencias útiles si crees que tienes una mejor solución :) ¡Gracias!
PLUGIN! ¿Por qué me olvido de su existencia? Gracias por la sugerencia :) Veremos cómo voy a incorporarlo en el marco.Gracias :) –
Pero puede que esto no se adapte a mi caso ya que mi GridPanel personalizado proporciona paginación personalizada Barra de herramientas, botones predefinidos, cuadro de búsqueda, RESTO ... etc. El complemento podría no ser el camino :) ¡Gracias por la sugerencia de todos modos! –
¿Por qué no? Puede acceder a estos componentes personalizados desde el complemento para vincular su funcionalidad a ellos. Después de todo, lo que hace el complemento es, de hecho, 'Ext.apply()' tal como lo hace ahora. Simplemente agrega una API un poco más robusta y fácil de usar para eso. – Mchl