1

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

http://screencast.com/t/RCdve5dO2

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

这一切都可以在一个窗口中正常运行。

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

http://screencast.com/t/bbJ8RjlQK1b1

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

我的问题:

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

4

1 回答 1

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

  }
});
于 2012-06-29T03:14:59.027 回答