EXT JS应用程序设计建议

时间:2012-06-29 03:04:25

标签: extjs4

需要EXT JS应用程序设计建议。这是我到目前为止的图表:

http://screencast.com/t/RCdve5dO2

我有一个带工具栏的窗口。在tb上有3个菜单,一个按钮和一个商店来跟踪一些信息。窗口本身是一个图像,它根据菜单的值在按钮点击时改变。我有一个菜单处理程序。

这一切都很好,有一个窗口。

我遇到的问题是我可以在drop事件上创建窗口的多个实例(从左侧的树中拖动)。当多个窗口打开时,会出现某种菜单冲突。当在另一个窗口上选择一个项目时,一个窗口上的菜单会中断。像这样:

http://screencast.com/t/bbJ8RjlQK1b1

似乎窗口的所有实例似乎都在共享相同的处理程序,或者每个窗口可能共享相同的菜单实例?我需要调查一下。

我的问题:

所以退后一步,要求是每个重复的窗口(可能有很多)必须独立运行。从设计角度来看,最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

让我猜一下,您正在为initComponent函数之外的组件类定义对象或数组。

您可以发布您的代码吗?

您应该在initComponent中声明所有非主要内容,如下所示:

Ext.define('SomeComponent', {

  extend:'SomeOtherComponent',

  title:'a string is a primitive type. so is a number',

  initComponent: function(){

    Ext.applyIf(this, {
      someNonPrimitiveProperty:{ text:'arrays and objects are non-primitive' }
    });

    this.callParent(arguments); //always call this

  }
});