Extjs4 - Estensione di diversi componenti da una singola classe base
-
20-12-2019 - |
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.
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() {
}
});
.