Pregunta

Tengo una aplicación web para la cual estoy usando extjs 4.2.Esta aplicación tiene un montón de componentes diferentes: un panel que muestra algunos datos, otro panel que muestra algunos otros datos, una cuadrícula, un gráfico, etc., etc.

Se requiere que cada componente tenga al mínimo un conjunto específico de funciones y propiedades.Así que me gustaría definir una clase de 'componente' que pueda extender todo lo demás.Por ejemplo:

Ext.define('MyApp.BaseComponent', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.myapp-basecomponent',

    prop1: true,
    prop2: 17,

    func1: function (a, b) {
        return a + b;
    }
});

Luego extendería todos los componentes individuales en mi aplicación desde esa clase de componentes básicos.El problema es que si defino el componente base como se extiende 'Ext.Panel.Panel', solo puedo extender otros paneles.No puedo extender una cuadrícula, árbol, etc, etc., etc.

¿Hay alguna manera de lograr esto?¿O me acerco a esto de la manera equivocada?Tal vez debería simplemente anidar todo lo que no es un panel (cuadrícula, carta, etc.) en un panel para que todos puedan extenderse desde Basecomponent?Asesoramiento muy apreciado.

¿Fue útil?

Solución

Si solo desea aumentar la clase de componentes de la base, siempre podría proporcionar una anulación que los agregue:

Ext.define('MyApp.AugmentComponent', {
    override: 'Ext.Component',

    a: 1,
    b: 2,

    fn1: function() {
    }
});

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top