在存储加载时,extjs在面板上显示loadmask

时间:2013-07-03 20:22:52

标签: javascript extjs

我在面板上添加了一个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:... 
  }
}

1 个答案:

答案 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