Refs - 一个'ref'几个对象

时间:2013-06-12 15:01:27

标签: extjs sencha-touch-2

我只是想知道......我是否会定义一个' 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'
        }

并且通过“getter'功能我的意思是前。

glob.getEmailViewSubmitCreateTicket().setHidden(false);

这会影响他们两个还是只影响一个?正如我测试过 - 这只会影响一个。任何想法如何做同样的,但我想要的是同时影响2个按钮。

1 个答案:

答案 0 :(得分:1)

refs只能返回一个找到的第一个实例。如果您需要获取所有实例,请使用内部使用的Ext.ComponentQuery

这应该这样做

Ext.Array.each(
    Ext.ComponentQuery.query('button[action=emailViewSubmitCreateTicket]'), 
        function(item){
            item.setHidden(false);
    });