ExtJS4の新しいMVCパターンに従ってダイナミックコントローラを作成していて、小さな問題が発生しました。私はthis.controlメソッドを使用して、コントローラを自分のビューにアタッチしました。コントローラーを2回目に作成するとき(ナビゲーションで前後に移動する)、私はそれらを数回付けました。私の質問です:コントローラを破壊するか、またはthis.controlコマンドで設定したすべてのリスナーを削除する最良の方法は何ですか。ExtJS MVC:ダイナミックコントローラからハンドラを削除する方法
事前 のおかげでクリス
私の新しいコントローラのコードのような次のようになります。init関数内で
var step1Controller = Ext.create("MyApp.controller.Step1Controller", {
application : this.application
});
step1Controller.init();
:
私はこのような新しいコントローラを作成します私のコントローラの私はこのようなビューにコントローラを接続しました:
init : function() {
this.addEvents(['step1completed','basecontructionaborted']);
this.setupScreenLayout();
this.getTmpConfiguredControlModelsStore().removeAll();
this.application.fireEvent("addBreadCrumb", "Inbetriebnahme");
this.application.fireEvent("addBreadCrumb", "Schritt 1/3");
this.control({
'#addmodelbutton' : {
click : this.onAddBtnClick
},
'#modelviewer' : {
modelselected : this.onPanelSelect
},
'#navigationcontainer #movemodelleftbutton' : {
click : this.onMoveModelLeftClick
},
'#navigationcontainer #continuestep2' : {
click : this.onContinueStep2Click
},
'#navigationcontainer #abortbutton' : {
click : this.onAbortButtonClick
}
});
console.log('[BaseConstruction | init] completed');
}
Ext.app.EventBusを参照してください。 – atian25
ビューを破棄する場合、EventBusはリスナーを自動的に削除する必要があります。 – VoidMain
皆さんありがとう、このようなイベントを聞くのではなく、EventBusを使うべきですか? – Chris