我想在视图页面中应用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);
}
答案 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初始化你的加载掩码并立即销毁它。为了正确使用加载掩码:
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