Sencha touch 仓库装载上的装载指示器
我的存储正在加载。因此,我希望在加载存储数据时显示加载指示器。是否有任何函数可以知道列表存储是否已完全加载? 请帮帮我我找了这么长时间了 这是我的密码:Sencha touch 仓库装载上的装载指示器,sencha-touch,sencha-touch-2,intellisense,Sencha Touch,Sencha Touch 2,Intellisense,我的存储正在加载。因此,我希望在加载存储数据时显示加载指示器。是否有任何函数可以知道列表存储是否已完全加载? 请帮帮我我找了这么长时间了 这是我的密码: Ext.Viewport.setMasked({ xtype: 'loadmask', message: 'Loading' }); Ext.define('MyApp.view.Myview1', { extend: 'Ext.Panel', requires: ['Ext.List', 'Ext.util
Ext.Viewport.setMasked({
xtype: 'loadmask',
message: 'Loading'
});
Ext.define('MyApp.view.Myview1',
{
extend: 'Ext.Panel',
requires: ['Ext.List', 'Ext.util.JSON'],
config: {
layout: 'hbox',
items: [
{
xtype: 'panel',
layout: 'fit',
flex: 1,
items: [
{
xtype: 'list',
itemTpl:
'<div class="myContent">' +
'<div>{name}</div>' +
'</div>',
store: 'MainStore',
disclosure: true,
store.on({
load: {
fn: function( store ) {
Ext.Viewport.setMasked(false);
},
scope: this,
single: true
}
});
store.load();
}
]
}
]
}
});
我的要求是在从存储加载数据时显示指示器,并在列表中包含存储中的所有数据后将其删除。您必须将加载事件绑定到此存储,如下代码所示
Ext.Viewport.setMasked({
xtype: 'loadmask',
message: 'Loading'
});
store.on({
load: {
fn: function( store ) {
Ext.Viewport.setMasked(false);
},
scope: this,
single: true
}
});
store.load();
这个很简单,就像@Naresh说的 将加载掩码放在函数中
Ext.Viewport.setMasked({
xtype: 'loadmask',
message: 'Please Wait...'
});
并在存储加载后禁用loadmask
storectn.load({
callback: function (records, operation, success, response) {
if (success==1) {
// Ext.Msg.alert('success');
Ext.Viewport.setMasked(false);
} else {
// Ext.Msg.alert('Failed');
Ext.Viewport.setMasked(false);
}
}
});
我终于解决了这个问题: Sencha在很短的时间内加载存储和列表,但加载UI需要很长时间。因此,在加载完存储之后,如果您使用setTimeout设置回调以删除指示符,那么问题将得到解决。因为当UI加载完成时,它将调用您的最终方法,因为JavaScript是单线程语言
Ext.Viewport.setMasked({
xtype: 'loadmask',
message: 'Loading'
});
store.on({
load: {
fn: function( store ) {
setTimeout(function(){
Ext.Viewport.setMasked(false);
}, 100);
},
scope: this,
single: true
}
});
store.load();
在这里,即使setTimeout应该在100毫秒后调用,它也会等待UI先加载,然后再调用
如果使用store.addRecord通过自定义查询动态加载存储,则加载所有数据后,只需调用setTimeout调用。它也可以工作。我们需要设置MaskPrevent用户交互,并在sencha touch中加载数据时显示加载消息。Sencha touch setMasked提供将遮罩添加到容器中的选项。但每次我们都需要手动添加掩码并移除掩码。在这一瞬间,我们可以使用商店监听器手动做一些事情 我在这里的要求是我有一个积垢过程存储。所以每次我尝试同步和加载数据时,我都想设置视图的掩码。我的商店代码如下所示 我为此任务使用了beforeload、beforesync、load、metachange、removeecords、updaterecord、write、addrecords事件 请点击链接访问下面的url以获取完整的源代码。[通过解决方案解决]
我需要更多的建议。你能发布你的代码吗?这样我就可以给你更多的信息。有一个商店意味着你商店的目标。好的。。我发布了我在问题中尝试的代码。请看一看