实施例
Ext.define('ClassA', {
plugins: [ 'PluginA' ]
});
Ext.define('ClassB', {
extend: 'ClassA',
plugins: [ 'PluginB' ]
});
Ext.create('ClassB', {
plugins: [ 'PluginC' ]
});
所以我希望ClassB
的实例包含插件PluginA
,PluginB
,PluginC
。
答案 0 :(得分: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);
}
});
答案 1 :(得分:0)
这不起作用。因为,配置对象上没有属性plugins
。因此,创建中的PluginC
将不会应用于实例。
但这对我有用:
constructor: function(config) {
this.plugins = Ext.Array.merge(this.plugins || [], [
'PluginA'
]);
this.callParent(arguments);
}
我正在使用Ext版本4.1.1.1