扩展Class第二次sencha touch 2

时间:2015-02-06 22:10:37

标签: javascript extjs4 sencha-touch sencha-touch-2

我已经在Sencha Touch 2中扩展了我的实用程序/类,现在我想通过不同的类型再次扩展它,以便通过config对象中的不同设置。 我再次扩展它但是当它被扩展时(仅通过再次添加extend: 'Ext.ux.MyUX')它返回前一个对象中的前置设置,但我想以完全不同的方式处理它。 如何删除以前的扩展类或清空items[]

Ext.define('MyAPP.view.MyView', {
    extend: 'Ext.ux.MyUX',
    xtype: 'my',
});

我的代码:

initialize: function() {
var items = [
            xtype: 'toolbar',
            docked: 'top',
            title:'title'
        }];
this.setItems(items);
}

编辑1:

让我们说,我有一个扩展我的Ext.ux.MyUX的后续配置对象。对于第一个实例,它完美地工作,扩展我的类并覆盖items[],但是当我想再次扩展它时,对于不同的覆盖,它显示先前覆盖/扩展的先前items[]。 / p>

config: {
        fullscreen: true,
        items : [
        {
            title: 'Home'
        },
        {
            title: 'ABOUT',
            items: [{
                items: [
                { xtype: 'about'},
            {
                xtype: 'titlebar',
                title: 'About Us',
                docked: 'top'
            }]
            }]
        }

        ]
    }

2 个答案:

答案 0 :(得分:0)

即使您不打算进一步扩展该类,在类原型中使用items也不是一个好主意。原型中的复杂变量由所有实例共享,如果您有多个实例,则不可避免地会导致麻烦。

是你我要创建一个包含后代所需的所有功能的基类,我会扩展它:

B -> C
B -> D

而不是

B -> C -> D

后代会根据需要实施项目。

答案 1 :(得分:0)

有一篇关于如何使用config对象扩展类的非常有用的文章: http://skirtlesden.com/articles/config-objects-on-the-prototype

如果这没有帮助,我建议按照Saki的问题获取完整的源代码示例。例如。你实现初始化函数和从哪个类派生的地方并不明显。