0

Ext.component.Query を使用してオブジェクトを取得しています。オブジェクトが存在するかどうかを確認する必要があります。オブジェクトが存在する場合は、オブジェクトを削除する必要があります。誰でもこれを行う方法を教えてもらえますか?

ありがとう

4

5 に答える 5

2

他のポスターが述べたように、あなたが探しているメソッドは です。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!");
            }
        }
    }]
    }]
});
于 2013-09-10T15:24:35.930 に答える
0

Ext.ComponentQuery-method-queryで説明されていると思います。

于 2013-09-04T16:21:56.527 に答える
0

Ext.getCmp("id") は小さなアプリに適していることに最初に注意してください。大きなアプリを使用する傾向がある場合は、 Component Query を使用できます。これは 2 つの方法で実行できます。「Xtype」または「コンポーネント ID」のいずれかを使用できます (コンポーネント ID の前に # を付ける必要があることに注意してください)。

于 2013-09-05T07:58:40.667 に答える