Extjs4 ExtJS应用程序设计建议

Extjs4 ExtJS应用程序设计建议,extjs4,Extjs4,需要ExtJS应用程序设计建议。以下是我到目前为止所拥有的图表: 我有一个带工具栏的窗口。tb上有3个菜单、一个按钮和一个用于跟踪某些信息的存储。窗口本身是一个图像,根据菜单的值单击按钮时会发生变化。我有一个菜单处理程序 这一切都很好,一个窗口 我遇到的问题是,我可以在一个drop事件中创建多个窗口实例(从左侧的树中拖动)。当打开多个窗口时,会出现某种菜单冲突。选择另一个窗口上的项目时,一个窗口上的菜单会中断。像这样: 窗口的所有实例似乎共享同一个处理程序,或者每个窗口共享同一个菜单实例?我

需要ExtJS应用程序设计建议。以下是我到目前为止所拥有的图表:

我有一个带工具栏的窗口。tb上有3个菜单、一个按钮和一个用于跟踪某些信息的存储。窗口本身是一个图像,根据菜单的值单击按钮时会发生变化。我有一个菜单处理程序

这一切都很好,一个窗口

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

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

我的问题:


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

让我猜猜,您是在initComponent函数之外为组件类定义对象或数组

你能把你的密码寄出去吗

您应该像这样声明initComponent中的所有非Primative:

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

  }
});

+1表示初始化组件。我确实在Sencha论坛上读到了这篇文章。但我一直在寻找更高层次的架构意见。一般来说,尽量不在组件之间共享任何内容,包括它们的存储和模型实例。您可以有目的地共享模型,但默认情况下不要这样做。