【问题标题】:loadmask in sencha touch2sencha touch2 中的加载掩码
【发布时间】:2012-06-25 12:11:16
【问题描述】:

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

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

【问题讨论】:

    标签: javascript html extjs sencha-touch-2


    【解决方案1】:

    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 请求的成功函数。

    【讨论】:

      【解决方案2】:

      我这样做的方式如下:

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

      然后就可以使用了

      Ext.Viewport.setMasked(false);
      

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

      【讨论】:

      • 您可以发布您尝试过的确切代码吗?这应该适用于在整个视口上放置负载掩码的所有情况。
      【解决方案3】:

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

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

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

      【讨论】:

      • ..我已将 id 定义为视图页面中的加载程序。在控制器上,我在底部有 CompanyProfileViewInitialize 函数,这个函数我已经应用了这个代码 Ext.get('loader').destroy();。此函数获取数据并初始化页面.. 但在这里我无法 c d 加载掩码。我做事的方式有什么问题..
      猜你喜欢
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多