1

我想在视图页面中应用加载掩码。在启动应用程序时,一些视图页面需要一些时间来加载稍后将显示的数据,所以如果它需要时间加载,我想向用户显示加载掩码,并显示一些消息,如“正在加载......”。从一些示例中,我应用了加载掩码,但每次我点击该页面时都会显示该消息。这是不好的方式,因为这里设置时间。如果没有数据,我需要像这样应用加载掩码,它应该向用户显示加载掩码,直到页面获取数据。请任何人帮助我。如何实现这一目标

我的代码在这里: 在控制器级别,我正在获取 load-mask 的 id 并设置属性,如下所示的代码

onCompanyPageLoad: function () {
    var loader = Ext.getCmp('mask');        
    loader.setMessage("Loading...");
    loader.setIndicator(true);
    loader.setTransparent(false);      
    loader.show();        
    setTimeout(function () {            
        loader.hide();
    }, 1000);
}
4

3 回答 3

17

user978790的答案是在 Sencha Touch 2 中显示和隐藏加载蒙版的正式方式。

如果你不能让它工作,很可能你正在做类似的事情:

Ext.Viewport.setMasked({xtype:'loadmask',message:'your custom loadmask'});
... then do something here
Ext.Viewport.setMasked(false);

请注意,Javascript 是异步的,因此它不能确保代码行按上述顺序运行。然后有一种可能,Sencha Touch 会初始化您的加载蒙版并立即销毁它。为了正确使用加载掩码:

  1. 如上所述初始化加载掩码。
  2. 将加载掩码初始化后确保启动Ext.Viewport.setMasked(false);特殊功能放入其中,例如。事件处理程序,或 JSONP/AJAX 请求的成功函数。
于 2012-06-26T03:00:37.600 回答
7

我这样做是通过以下方式:

Ext.Viewport.setMasked({xtype:'loadmask',message:'your custom loadmask'});

然后你可以使用

Ext.Viewport.setMasked(false);

停止显示加载掩码 如果您只想在视图的一部分上显示掩码,这也适用于组件

于 2012-06-25T12:16:59.800 回答
0

只需删除所有这些。我很清楚如何使用加载器。首先在主页 html 上添加加载器

<div id="loader"></div>//add id#loader with background loading image

页面加载后只需添加控制器Ext.get('loader').destroy();//当页面完全加载时,它将加载您的加载 div

于 2012-06-25T12:20:17.787 回答