sencha touch2中的loadmask

时间:2012-06-25 12:11:16

标签: javascript html5 extjs sencha-touch-2

我想在视图页面中应用load-mask。在启动应用程序时,一些视图页面花费时间来加载它将显示的数据,所以如果它花费时间加载那段时间我想要向用户显示加载掩码,其中包含一些消息,如“loading ....”。从一些示例我已经应用了load-mask,但每当我点击该页面时,它都会显示该消息。这是不好的方式因为这里设定时间。 我需要像这样应用load-mask如果没有数据它应该向用户显示加载掩码,直到页面获取数据。请任何人帮助我。如何实现这一目标

我的代码在这里: 在控制器级别我正在使用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);
}

3 个答案:

答案 0 :(得分: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请求的成功函数。

答案 1 :(得分:7)

我是按照以下方式做的:

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

然后你可以使用

Ext.Viewport.setMasked(false);

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

答案 2 :(得分:0)

删除所有这些。我很清楚如何使用loader.First在主页html上添加加载程序

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

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