ExtJSで生成されたオブジェクト階層のサブツリーを他のオブジェクトに直接リンクしないでください。それは悪いスタイルであり、メモリリークや早すぎる破壊のようなあらゆる種類の問題を引き起こす可能性があります。
など。 1つのオブジェクトが破棄されても、他のオブジェクトが存続する場合、共有イベントオブジェクトはどうなりますか?
デストラクタによって破棄される場合もあれば、破棄されない場合もあります。次に、別のオブジェクトがそのオブジェクトにアクセスしようとすると、結果として未定義の動作が発生します。
複数のオブジェクトで同じリスナーが必要な場合は、これらのオブジェクトを派生させたプロトタイプを作成するか、パラメーターとして指定したオブジェクトにこれらのリスナー関数を正確に追加する関数を作成する必要があります。ご例えば
、ノードは読者によって自動的に作成することができますので、私はノードが含まれている店舗に機能を追加すること、第二のアプローチを使用します。
addListenersToTreeNode: function(node) {
node.on('collapse', this.onCollapse);
node.on('expand', this.onExpand);
node.on('example', this.onExample);
}
両方に関数を呼び出しますノード:
nodeStore.addListenersToTreeNode(a);
nodeStore.addListenersToTreeNode(b);
とvoiláの場合、ツリーノードは同じリスナーを持つようになりました。
両方のオブジェクトは似ています。たとえば、グリッドのobjとPanelオブジェクトがあります。グリッドのitemclickイベントをパネルにコピーすると、work.Soが正しく動作していますか? – Tejas
オブジェクトaはtreenode、bはまたtreenodeです... Sooはい、私はそうしていると思います:X – ioliano
TreeNodeとはどういう意味ですか? NodeInterfaceを実装するもの? –