1

Ext.define('ClassA', {
    plugins: [ 'PluginA' ]
});

Ext.define('ClassB', {
    extend: 'ClassA',
    plugins: [ 'PluginB' ]
});

Ext.create('ClassB', {
    plugins: [ 'PluginC' ]
});

だから私はClassBプラグイン、、、PluginAPluginBインスタンスが欲しいPluginCです。

4

2 に答える 2

2

コンストラクターでそれらをマージする必要があります。考えられる解決策は次のとおりです。

Ext.define('ClassA', {
    constructor: function (config) {
        var me = this;
        config.plugins = Ext.Array.merge(config.plugins ? config.plugins : [], ['PluginA'])
        Ext.apply(me, config);
        me.callParent(arguments);
    }
});

そして、ここにフィドルがあります:http: //jsfiddle.net/johanhaest/EGMxA/

于 2013-03-27T11:19:49.430 に答える
0

これは機能しません。plugins原因、構成オブジェクトにプロパティがありません。したがってPluginC、作成からインスタンスには適用されません。

しかし、これは私のために働いた:

constructor: function(config) {
    this.plugins = Ext.Array.merge(this.plugins || [], [
        'PluginA'
    ]);
    this.callParent(arguments);
}

Extバージョン4.1.1.1を使用しています

于 2013-03-27T12:03:34.603 に答える