Ext.component.Query を使用してオブジェクトを取得しています。オブジェクトが存在するかどうかを確認する必要があります。オブジェクトが存在する場合は、オブジェクトを削除する必要があります。誰でもこれを行う方法を教えてもらえますか?
ありがとう
Ext.component.Query を使用してオブジェクトを取得しています。オブジェクトが存在するかどうかを確認する必要があります。オブジェクトが存在する場合は、オブジェクトを削除する必要があります。誰でもこれを行う方法を教えてもらえますか?
ありがとう
他のポスターが述べたように、あなたが探しているメソッドは です。Ext.ComponentQuery
これは、次に via の長さを確認できる配列を返します。これによりlength
、オブジェクトが存在するかどうかがわかります。オブジェクトが存在する場合はdestroy()
、Ext.AbstractComponent
ここで何をしようとしているのかを示す 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!");
}
}
}]
}]
});
Ext.ComponentQuery-method-queryで説明されていると思います。
Ext.getCmp("id") は小さなアプリに適していることに最初に注意してください。大きなアプリを使用する傾向がある場合は、 Component Query を使用できます。これは 2 つの方法で実行できます。「Xtype」または「コンポーネント ID」のいずれかを使用できます (コンポーネント ID の前に # を付ける必要があることに注意してください)。