ExtJS4 - 从单个基类扩展不同的组件

时间:2013-11-15 20:14:21

标签: javascript extjs4 extjs4.2

我有一个使用ExtJS 4.2的网络应用程序。这个应用程序有一堆不同的组件 - 一个显示一些数据的面板,另一个显示其他数据的面板,一个网格,一个图表等等。

要求每个组件至少具有一组特定的功能和属性。所以我想定义一个'组件'类,我可以扩展其他所有类。例如:

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扩展出来?建议非常感谢。

1 个答案:

答案 0 :(得分:1)

如果您只想扩充基本组件类,您可以随时提供添加它们的覆盖:

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

    a: 1,
    b: 2,

    fn1: function() {
    }
});