-->

如何通过它的名字来获得组件的对象?(How to get object of component b

2019-11-03 12:07发布

我有这样一个观点:

tbar: [
        {
            iconCls:'icon-p',
            hidden: true,
            name:'p',
            handler:'onPClick'
        },
        {
            xtype: 'tbfill'
        },
        {
            iconCls:'icon-n',
            hidden:true,
            name: 'n',
            handler:'onNClick'
        }
    ],

    initComponent:  function(){
      Ext.apply(this, {
        layout: 'fit',  
        items: [
          {
            xtype:'textareafield',
            name: 'name_content'  
          }
        ]
      });
      this.callParent();
    }

OnPClick我做form.up( 'ID')。getForm()。

如何通过它的名字表明,我可以隐藏或显示该图标让图标-p的对象。

Answer 1:

在onPClick处理你得到的第一个参数参照组件。
某处在你的控制器,你有处理函数

onPClick : function(icon-p-object){
  // do some stuff with the icon-p-object
}

当你分配的itemId到你的图标-n的对象 ,那么你就可以轻松搞定的参考,当你在你的onPClick处理程序follwoing

var parentComponent = icon-p-object.up(); // now we have the reference to the parent container
var icon-n-Component = parentComponent.down('#icon-n'); // and with that we can get the other reference of the child element

完整的代码应该是

onPClick : function(icon-p-object){
  var parentComponent = icon-p-object.up();
  var icon-n-Component = parentComponent.down('#icon-n');
  // do some stuff with the icon-n object
}


Answer 2:

您可以将ID分配给项目和使用Ext.getCmp(“ID”)来引用它

    {
        iconCls:'icon-p',
        hidden: true,
        name:'p',
        handler:'onPClick',
        id: 'p_id'
    },

要显示它

Ext.getCmp('p_id').show();

为了隐藏

Ext.getCmp('p_id').hide();

我听到人们说,分配“ID”的项目可能是低效的(不知道为什么?),但是这是测试你试图完成什么好办法。 也许你可以找到一个更好的办法,但这应该工作。



文章来源: How to get object of component by its name?
标签: Extjs