0

コンテナに 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();
    }
});
4

0 に答える 0