Extjs 如何屏蔽treepanel直到加载成功
我定义了一个树面板。我尝试添加mask(),等待树加载完成。但不起作用 这是我的密码Extjs 如何屏蔽treepanel直到加载成功,extjs,extjs4.1,Extjs,Extjs4.1,我定义了一个树面板。我尝试添加mask(),等待树加载完成。但不起作用 这是我的密码 Ext.define('Example.example', { extend: 'Ext.tree.Panel', alias: 'widget.example', title: 'example', store: Ext.create('Ext.data.TreeStore', { ... listeners: { 'load': functio
Ext.define('Example.example', {
extend: 'Ext.tree.Panel',
alias: 'widget.example',
title: 'example',
store: Ext.create('Ext.data.TreeStore', {
...
listeners: {
'load': function (store, records, success) {
Ext.ComponentQuery.query('example').getEl().unmask(); // not working
},
'beforeload': function (store, options) {
Ext.ComponentQuery.query('example').getEl().mask();// not working
}
}
})
});
如何使它工作感谢。试试这个
Ext.ComponentQuery.query('example').body.mask()
使用body而不是getEl()
或者使用未记录的ownerTree
属性:
beforeload: function() {
this.ownerTree.getEl().mask("Loading", 'x-mask-loading');
}
或者在方法中注册侦听器以获取范围:
Ext.define('Example.example', {
// ...
,initComponent: function() {
this.callParent(arguments);
this.getStore().on({
scope: this
,beforeload: function() {
this.getEl().mask("Loading", 'x-mask-loading');
}
});
}
});
我尝试了一下,但得到了类似
Ext.ComponentQuery.query(…).body未定义的错误Ext.ComponentQuery.query('example')
返回您和对象是吗?我使用警报(Ext.ComponentQuery.query('example'))进行测试在beforeload
函数和get blank alert?console.log(Ext.ComponentQuery.query('example'))中的code>打印任何内容?我会收到类似这样的错误:“ownerTree.getEl(…)未定义”:(这意味着您的存储在注册侦听器之后,但在呈现树面板之前开始加载…如果(this.ownerTree.rendered){…}
以避免错误。如果希望在初始加载期间屏蔽树,还应在树的呈现事件上添加一个侦听器,类似于If(this.store.isLoading()){this.getEl().mask()}
。这很好,但遮罩不在中间,请在“真实我的窗口”中查看我的示例代码,还有一些其他面板,同样的问题您是对的。请使用afterlayout
事件而不是render
来修复此问题。