Question

J'ai une application Web pour laquelle j'utilise EXTJS 4.2.Cette application a un tas de composants différents - un panneau qui affiche certaines données, un autre panneau qui affiche d'autres données, une grille, un graphique, etc., etc.

Il est nécessaire que chaque composant ait au minimum un ensemble spécifique de fonctions et de propriétés.Je voudrais donc définir une classe «composante» que je peux prolonger tout le reste de.Par exemple:

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

    prop1: true,
    prop2: 17,

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

Ensuite, je prolongerais chaque composant individuel de mon application de cette classe de composants de base.Le problème est que si je définisiez le composant de base comme extension 'ext.panel.panel', je ne peux que prolonger d'autres panneaux.Je ne peux pas étendre une grille, une arbre, etc., etc. de.

Y a-t-il une façon de pouvoir accomplir cela?Ou est-ce que je m'approche de cela dans le mauvais sens?Peut-être que je devrais simplement nier tout ce qui n'est pas un panneau (grille, graphique, etc.) dans un panel afin qu'ils puissent tous s'étendre du basocomposant?Conseil grandement apprécié.

Était-ce utile?

La solution

Si vous souhaitez simplement augmenter la classe des composants de base, vous pouvez toujours simplement fournir un remplacement qui les ajoute:

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

    a: 1,
    b: 2,

    fn1: function() {
    }
});

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top