0

ただ疑問に思っているのは...コントローラーで1つの「ref」を定義し、この「ref」の基準に一致するオブジェクトがほとんどないのでしょうか?「getter」メソッドで両方を取得できますか?

例として、以下のコード (コントローラー):

Ext.define('aBMin.controller.EmailRead', {
extend : 'Ext.app.Controller',

config : {
    control : {
        emailViewSubmit : {
            tap : 'funEmailViewSubmit'
        },
        emailViewSubmitCreateTicket : {
            tap : 'funEmailViewSubmitCreateTicket'
        }
    },
    refs : {
        emailViewPanel : 'emailread-panel'
        ,ticketViewPanel : {
            selector : 'ticketview-panel',
            xtype : 'ticketview-panel',
            autoCreate : true
        }
        ,dashboardPanel : 'dashboard-panel'
        ,emailViewSubmit : 'button[action="emailViewSubmit"]'
        ,emailViewSubmitCreateTicket : 'button[action="emailViewSubmitCreateTicket"]'
        ,ticktViewStaff : 'selectfield[alias=ticketview-supportstaffid]'
        ,ticketViewSubmit : 'button[action="ticketViewSubmit"]'
        ,emailBody : 'displayfield[name="emailbody"]'
    }

表示 (メモを取る - 同じアクションを持つ 2 つのボタン = emailViewSubmitCreateTicket):

items : [{
            xtype : 'button',
            text : 'Create Ticket',
            action : 'emailViewSubmitCreateTicket',
            ui : 'confirm',
            width : '100%',
            hidden : true,
            margin : '0 0 2px'
        }, {
            xtype : 'button',
            text : 'Save',
            action : 'emailViewSubmit',
            ui : 'confirm',
            width : '100%',
            margin : '0 0 2px'          
        }, {
            xtype : 'button',
            text : 'Create Ticket',
            action : 'emailViewSubmitCreateTicket',
            ui : 'confirm',
            width : '100%',
            hidden : true,
            margin : '0 0 2px'
        }

そして、「ゲッター」関数とは、例を意味します。

glob.getEmailViewSubmitCreateTicket().setHidden(false);

これは両方に影響しますか、それとも 1 つだけに影響しますか? 私がテストしたように、これは 1 つだけに影響します。同じことをする方法はありますが、私が望むのは一度に2つのボタンに影響を与えることです.

4

1 に答える 1

1

refs は、最初に見つかったインスタンスを 1 つだけ返すことができます。すべてのインスタンスを取得する必要がある場合は、Ext.ComponentQueryとにかく内部で使用される を使用します。

これの並べ替えはそれを行う必要があります

Ext.Array.each(
    Ext.ComponentQuery.query('button[action=emailViewSubmitCreateTicket]'), 
        function(item){
            item.setHidden(false);
    });
于 2013-06-12T15:15:06.477 に答える