我在面板上添加了一个loadmask,我希望每次加载与loadmask关联的存储时都显示微调器。面板是一个大工具提示,每次在折线图中访问点时都会加载存储。因此,当我将鼠标悬停在一个点上时,我希望在看到面板中的内容之前,短时间内会显示一条加载消息。我得到的是一个空面板。如果我删除了我添加了加载掩码(initComponent函数)的代码,它就可以工作(尽管没有加载消息)。我如何以这种方式使用loadmask,而不是为每个面板显式调用setLoading()方法?
以下是代码:
tips:
{
...
items:{
xtype: 'panel',
initComponent: function(){
var loadMask = new Ext.LoadMask(this, {
store: Ext.getStore('CompanyContext')
});
},
id: 'bar-tip-panel',
width: 700,
height: 700,
layout: {
type: 'accordion',
align : 'stretch',
padding: '5 5 5 5'
},
items:...
}
}
答案 0 :(得分:1)
config
对象不是覆盖initComponent
方法的正确位置。你应该做的是定义Panel
的子类,并覆盖那里的方法。
Ext.define('MyPanel', {
extend: 'Ext.panel.Panel',
xtype: 'mypanel',
initComponent: function() {
this.callParent(arguments); // MUST call parent's method
var loadMask = new Ext.LoadMask(this, {
store: ...
});
},
});
然后,您可以在mypanel
配置中使用xtype tips
。