1

EXT JS アプリケーションの設計に関するアドバイスが必要です。ここに私がこれまでに持っているものの図があります:

http://screencast.com/t/RCdve5dO2

ツールバー付きのウィンドウがあります。tb には、3 つのメニュー、ボタン、および情報を追跡するためのストアがあります。ウィンドウ自体は、メニューの値に基づいてボタンをクリックすると変化する画像です。私はこれのためのメニューハンドラーを持っています。

これはすべて正常に機能し、1 つのウィンドウでうまく機能します。

私が抱えている問題は、ドロップ イベント (左側のツリーからドラッグ) でウィンドウの複数のインスタンスを作成できることです。複数のウィンドウが開いていると、ある種のメニュー衝突が発生します。別のウィンドウで項目を選択すると、一方のウィンドウのメニューが壊れます。そのようです:

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 に答える