延长课堂第二次sencha触摸2

Extend Class second time sencha touch 2

本文关键字:触摸 sencha 第二次 课堂      更新时间:2023-09-26

我已经在Sencha Touch 2中扩展了我的实用程序/类,现在我想通过不同的类型再次扩展它,例如通过配置对象中的不同设置。我再次扩展了它,但当它被扩展时(通过再次添加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[]

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

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

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

B -> C
B -> D

而不是

B -> C -> D

后代将根据需要实现项。

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

如果这没有帮助,我建议按照Saki的问题来获得完整的源代码示例。例如,不清楚您在哪里实现了initialize函数以及从哪个类派生。