コンテナに 2 つのパネルがあるナビゲーションを作成しました。1 つはパネルを次々に追加するためのもので、もう 1 つは [次へ] ボタンと [戻る] ボタンを含むフッターとして追加するためのものです。パネルは個別に作成されます。
それらの xtype を使用してパネルがその場で追加されると、イベント ハンドラーは一度は正常に動作しますが、イベント ハンドラーに戻ると応答しません (viewSettingSelectionPanel 関数)。イベント ハンドラはメイン コントローラにあります。
パネルでIdの代わりにitemIdを使用すると役立つことがわかりました(同じIDで競合する2つのコンポーネントを登録しているため)が、このシナリオでコントローラーでそれらを参照するにはどうすればよいですか..
この問題と解決策を理解するのを手伝ってください。
前もって感謝します。
--- 私のアプリ ---
var current = 0;
var myPanel = new Array("panelOne", "panelTwo", "panelThree", "panelFour", "panelFive");
Ext.define("myApp.controller.MainController", {
extend: "Ext.app.Controller",
config: {
refs: {
backButton: '#backButton',
nextButton: '#nextButton',
panelArea: '#panelArea',
main: '#main',
panelOne: '#panelOne',
panelTwo: '#panelTwo',
panelThree: '#panelThree',
panelFourP: '#panelFour',
panelFiveP: '#panelFiveP',
footer: '#footer',
settingSelectionPanel: '#settingSelectionPanel',
selectSettingTextField: '#selectSettingTextField',
},
control: {
backButton: {
tap: 'navigateBack'
},
nextButton: {
tap: 'navigateNext'
},
selectSettingTextField: {
focus: 'viewSettingSelectionPanel'
},
},
},
navigateBack: function() {
current = current - 1;
this.addPanel(myPanel[current]);
},
navigateNext: function() {
current = current + 1;
this.addPanel(myPanel[current]);
},
addPanel: function(newPanel) {
this.getPanelArea().removeAt(0);
this.getPanelArea().add({
xtype: "" + newPanel + ""
});
},
viewSettingSelectionPanel: function(input) {
this.getSelectSettingTextField().disable();
this.getSettingSelectionPanel().showBy(input);
this.getSelectSettingTextField().enable();
}
});