如何销毁ExtJS应用程序?

如何销毁ExtJS应用程序?,extjs,extjs4,Extjs,Extjs4,我正在为我的ExtJS应用程序编写单元测试。 我使用一种身份验证方法,在成功身份验证后创建应用程序 但是如果我想不止一次地执行这个方法,我就会遇到问题,因为应用程序会被创建不止一次 如何销毁ExtJS应用程序 MyApp.destroy()不起作用。那它不起作用怎么办 如果页面上还有剩余的视图,您可能需要按照Ext.Viewport.removeAll(true,true)的思路进行操作在ExtJS4中,控制器和应用程序不支持销毁。您可以按照@chinabuffet的建议销毁和重新创建视口,但您

我正在为我的ExtJS应用程序编写单元测试。 我使用一种身份验证方法,在成功身份验证后创建应用程序

但是如果我想不止一次地执行这个方法,我就会遇到问题,因为应用程序会被创建不止一次

如何销毁ExtJS应用程序


MyApp.destroy()不起作用。

那它不起作用怎么办


如果页面上还有剩余的视图,您可能需要按照
Ext.Viewport.removeAll(true,true)的思路进行操作

在ExtJS4中,控制器和应用程序不支持销毁。您可以按照@chinabuffet的建议销毁和重新创建视口,但您应该假设应用程序对象是不朽的,并围绕这一点重构您的应用程序逻辑。

为什么不在初始化函数中添加一个标志设置器,以便在应用程序成功进行身份验证时,设置MyApp.alreadyInitiated=true

在init函数中,只需添加一个检查

    if (MyApp.alreadyInitiated) { 
        return;
    }
    MyApp.alreadyInitiated = true; 
或者如果你不喜欢多重回报,那就用吧!MyApp.alreadyInitiated,仅当代码通过时才运行