如何使用ExtJS销毁对象的所有实例?

时间:2013-08-01 13:51:28

标签: extjs javascript-framework

我使用框架ExtJS创建了2个这样的面板(我知道它不是最好的方式):

var panel = Ext.create("Ext.panel.Panel", {
                title: "first panel",
                width: 400,
                height: 250,
                renderTo: Ext.getBody(),
                html: "test 1"
            });

panel = Ext.create("Ext.panel.Panel", {
                title: "second panel",
                width: 400,
                height: 250,
                renderTo: Ext.getBody(),
                html: "test 2"
            });

现在我的浏览器中有2个面板。现在,如果我这样做:

panel.destroy();

它只摧毁了最后一个。 所以我的问题是:我怎么能破坏第一个面板?是否有一个方法包含浏览器中的所有面板?我是否存储了ID'面板每次都是为了以后销毁它们?...

2 个答案:

答案 0 :(得分:2)

试试这个:

var objArray = Ext.ComponentQuery.query("Ext.panel.Panel");

objArray包含所有面板对象。

现在运行for循环并销毁所有对象。

答案 1 :(得分:1)

如果你为它们设置了不同的变量(或你管理的数组),你可以单独销毁它们:

var panel1 = Ext.create("Ext.panel.Panel", {
    ...
});

var panel2 = Ext.create("Ext.panel.Panel", {
    ...
});

panel1.destroy();
panel2.destroy();

或者这个:

var panels = [];
var panels[0] = Ext.create("Ext.panel.Panel", {
    ...
});

var panels[1] = Ext.create("Ext.panel.Panel", {
    ...
});

for (var i=0; i<panels.length; i++)
{
    panels[i].destroy();
}