Sencha touch Sencha:防止在Sheet.hide之后取消掩码

Sencha touch Sencha:防止在Sheet.hide之后取消掩码,sencha-touch,Sencha Touch,我正在执行一个AJAX调用,在我关闭了一个工作表之后。问题是,当幻灯片转换完成时,Sencha会取消主体的伪装,但AJAX请求可能仍在运行。我怎样才能防止暴露 doSearch: function() { this.hide(); // the controller handles this and tells the store to // load the data from an AJAX proxy this.fireEvent('search', ..

我正在执行一个AJAX调用,在我关闭了一个工作表之后。问题是,当幻灯片转换完成时,Sencha会取消主体的伪装,但AJAX请求可能仍在运行。我怎样才能防止暴露

doSearch: function() {
    this.hide();

    // the controller handles this and tells the store to
    // load the data from an AJAX proxy
    this.fireEvent('search', ...);
}

谢谢。

不幸的是,没有简单的方法可以做到这一点。它与布局系统紧密相连,试图阻止它将导致一系列掩蔽问题

如果您使用的是Sencha Touch 2,在doSearch方法中,您可以在隐藏纸张后立即屏蔽容器,因此看起来该屏蔽从未消失

this.getParent().setMasked(true);
当AJAX回调完成时:

this.getParent().setMasked(false);
如果要遮罩整个屏幕,也可以遮罩视口:

Ext.Viewport.setMasked(true);

我找到了一个解决办法。可以指定隐藏动画,该动画可以设置为false以立即隐藏图纸。在这种情况下,工作表不会取消屏蔽屏幕。我想这可能被称为bug,因为它使屏幕无法访问,但在我的情况下,这是一个功能。:)还有一个警告:hide方法的实现忽略动画,因为它检查图纸是否隐藏(出于某种原因,即使它仍然可见),如果是,则跳过动画。所以,我不得不绕开它,就像这样:sheet.hidden=false;隐藏(假);谢谢