Domanda

Ho un'app Web per la quale sto usando Extjs 4.2.Questa applicazione ha un gruppo di componenti diversi: un pannello che visualizza alcuni dati, un altro pannello che visualizza alcuni altri dati, una griglia, un grafico, ecc., Ecc.

È richiesto che ciascun componente abbia almeno un set specifico di funzioni e proprietà.Quindi mi piacerebbe definire una classe "componente" che posso estendere tutto il resto da.Ad esempio:

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

    prop1: true,
    prop2: 17,

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

Allora estenderei ogni singolo componente nella mia app da quella classe di componente base.Il problema è che se definisco il componente base come estendere 'ext.panel.panel', posso estendere solo altri pannelli da esso.Non posso estendere una griglia, un albero, ecc., Ecc. Dallo.

C'è un modo che posso realizzare questo?O mi sto avvicinando a questo il modo sbagliato?Forse dovrei solo nidificare tutto ciò che non è un pannello (griglia, grafico, ecc.) In un pannello in modo che tutti possano estendersi da fondamenconent?Consigli molto apprezzati.

È stato utile?

Soluzione

Se vuoi solo aumentare la classe di componenti base, potresti sempre fornire un override che aggiunge loro:

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

    a: 1,
    b: 2,

    fn1: function() {
    }
});
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top