扩展面板问题后的ExtJS 4.2 setLoading()

时间:2014-08-19 02:14:56

标签: extjs extjs4 extjs4.1 extjs4.2 extjs-mvc

我的panelcollapsible,但默认情况下为collapsed,直到用户在视图中选择了一个元素。

在我的控制器中,当用户点击某个元素时,我会听取该事件,然后执行以下操作:

.....
pnlDetail.expand(true);

pnlDetail.setLoading('Loading details...');
.....

但是面板从不显示加载掩码。似乎它必须等到面板完全展开。

然后我尝试以下内容:

  pnlDetail.expand(true);

            Ext.Function.defer(function() {
                pnlDetail.setLoading('Loading details...');
            }, 500);

这次面板显示加载掩码。

  

有什么理由发生这种情况?这是一个问题还是我可以解决的问题?

1 个答案:

答案 0 :(得分:0)

如果我在https://fiddle.sencha.com/#home中尝试以下代码,则可以正常运行......

Ext.application({
    name : 'Fiddle',

    launch : function() {

        var panel = Ext.create('Ext.panel.Panel', {
            title: 'Hello',
            width: 200,
            html: '<p>World!</p>',
            renderTo: Ext.getBody(),
            collapsed: true,
            collapsible: true
        });

        panel.expand(true);

        panel.setLoading('Loading details...');
    }
});

所以我不明白为什么这不适用于您的应用程序。你用的是什么版本? 虽然你可以在expand事件上使用单个事件处理程序来尝试它,如下所示:

pnlDetail.on('expand', function(p){ p.setLoading('Loading details...'); }, this, { single: true });