需要EXT JS应用程序设计建议。这是我到目前为止的图表:
http://screencast.com/t/RCdve5dO2
我有一个带工具栏的窗口。在tb上有3个菜单,一个按钮和一个商店来跟踪一些信息。窗口本身是一个图像,它根据菜单的值在按钮点击时改变。我有一个菜单处理程序。
这一切都很好,有一个窗口。
我遇到的问题是我可以在drop事件上创建窗口的多个实例(从左侧的树中拖动)。当多个窗口打开时,会出现某种菜单冲突。当在另一个窗口上选择一个项目时,一个窗口上的菜单会中断。像这样:
http://screencast.com/t/bbJ8RjlQK1b1
似乎窗口的所有实例似乎都在共享相同的处理程序,或者每个窗口可能共享相同的菜单实例?我需要调查一下。
我的问题:
所以退后一步,要求是每个重复的窗口(可能有很多)必须独立运行。从设计角度来看,最好的方法是什么?
答案 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
}
});