我使用Ext.component.Query获取对象。我需要检查对象是否存在。如果对象存在,我需要删除该对象。谁能告诉我怎么做?
由于
答案 0 :(得分:2)
使用Ext.ComponentQuery
var check = Ext.ComponentQuery.query('yourXtype');
if (check.length > 0)
//do something
else
//do other something
答案 1 :(得分:2)
正如其他海报所提到的那样,您正在寻找的方法是Ext.ComponentQuery
,它返回一个数组,然后您可以检查通过length
的长度,这将反过来告诉您是否对象存在与否。如果该对象存在,则可以通过Ext.AbstractComponent
destroy()
方法销毁该对象
我已经制作了一个jsFiddle示例,演示了您在这里要做的事情:http://jsfiddle.net/mPYPw/
来自小提琴的代码:
Ext.create('Ext.panel.Panel', {
name : 'myPanel',
title: 'Panel 1',
width: 200,
html: '<b>Its a panel!</b>',
renderTo: Ext.getBody()
});
Ext.create('Ext.panel.Panel', {
name : 'myPanel',
title: 'Panel 2',
width: 200,
html: 'Look, another panel!',
renderTo: Ext.getBody(),
dockedItems: [{
xtype: 'toolbar',
dock : 'bottom',
items: [{
text: 'Destroy all panels!',
handler: function(){
// Here we can query for the panels
var panels = Ext.ComponentQuery.query('panel[name=myPanel]'),
trees = Ext.ComponentQuery.query('treepanel');
// @param {Ext.panel.Panel[]} panels Array of panel components
if(panels.length > 0){
alert("About to destroy " + panels.length + " Panels!");
Ext.each(panels, function(panel){
panel.destroy();
});
}
// There are no tree panels
if(!trees.length){
alert("There are no tree panels to destroy!");
}
}
}]
}]
});
答案 2 :(得分:1)
我知道文档在其中一个版本上搞砸了...我不知道它是否在Ext JS 4.2中仍然是相同的,但是在4.1.1中你可以通过xtype使用某些东西来查询Ext JS对象类似于:
Ext.ComponentQuery.query('xtype');
即
Ext.ComponentQuery.query('gridpanel');
答案 3 :(得分:0)
我认为Ext.ComponentQuery-method-query解释了它。
答案 4 :(得分:0)
首先注意Ext.getCmp(“id”)适用于小型应用程序.. 如果你倾向于有一个大的应用程序,你可以去组件查询。 这可以通过两种方式完成您可以使用“Xtype”或“组件ID”(注意组件ID必须以#为前缀)。