質問

extjs 4.2を使用しているWebアプリを持っています。このアプリケーションには、異なるコンポーネントの束があります - いくつかのデータ、他のデータ、グリッド、チャートなどを表示する別のパネル、グリッド、グラフなどのパネル。

各コンポーネントは最小の関数とプロパティのセットを最小限にしていることが必要です。だから私は他のすべてを延ばすことができる「コンポーネント」クラスを定義したいのですが。例えば:

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

    prop1: true,
    prop2: 17,

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

それから私はその基本コンポーネントクラスから私のアプリのすべての個々のコンポーネントを拡張します。問題は、基本コンポーネントを拡張 'ext.panel.panel'として定義した場合、私はそれから他のパネルのみを拡張することができます。私はそれからグリッド、ツリーなどを延ばすことはできません。

これを達成できる方法はありますか?それともこれに間違った方法に近づいていますか?たぶん私はパネルではないすべてのものをパネルに入れているだけで、それらがすべてBaseComponentから拡張できるようにしてください。アドバイスは大いに感謝しています。

役に立ちましたか?

解決

基本コンポーネントクラスを増強したい場合は、常にそれらを追加する上書きを提供するだけです。

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

    a: 1,
    b: 2,

    fn1: function() {
    }
});
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top