2015-02-06 80 views
0

我已经在Sencha Touch 2中扩展了我的实用程序/类,现在我想通过不同的类型再次扩展它,以便通过配置对象中的不同设置。 Ive再次扩展它,但只是扩展它(通过再次添加extend: 'Ext.ux.MyUX')它将返回先前对象中的优先设置,但我想完全不同地处理它。 如何删除以前的扩展类或清空items[]Extend Class second time sencha touch 2

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' 
      }] 
      }] 
     } 

     ] 
    } 
+0

你能发布完整的基本代码和扩展类吗? – Saki 2015-02-08 10:09:22

+0

@Saki可以采取简单的配置'Ext.ux'项目。 – developer 2015-02-08 17:07:30

+0

从单纯的描述来看,我不知道你想要达到什么样的目的,这是什么问题。所以我希望我能从代码中理解。 – Saki 2015-02-08 18:13:28

回答

0

在类原型有items不是,即使你不打算进一步扩展该类一个非常好的主意。如果您有多个实例,那么来自原型的复杂变量将被所有不可避免导致麻烦的实例共享。

要你我想创建一个基类,将包含由后人所需要的所有功能,我会延长该:

B -> C 
B -> D 

,而不是根据需要

B -> C -> D 

后人将实施项目。

+0

我目前的行为是'Ext.ux.myUX-> MYAPP.view.View1','Ext.ux.myUX-> MYAPP.view.View2',但是当我做第二次扩展时,它显示了以前的项目。 – developer 2015-02-08 20:27:36

+0

有没有办法去除扩展视图? – developer 2015-02-08 20:28:59

+0

这很好,但不要在'Ext.ux.myUX'中实现项目,但在视图中。另一种选择是使用[工厂功能](http://extjs.eu/?s=factory+function)。 – Saki 2015-02-08 20:29:53