【问题标题】:ExtJS 4.2 setLoading() after expanding panel issue展开面板问题后的 ExtJS 4.2 setLoading()
【发布时间】:2014-08-19 02:14:56
【问题描述】:

我有一个panel,即collapsible,但默认情况下它是collapsed,直到用户在视图中选择一个元素。

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

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

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

但面板从不显示加载掩码。看来要等到面板完全展开了。

然后我尝试以下方法:

  pnlDetail.expand(true);

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

这次面板显示加载掩码。

任何线索为什么会发生这种情况?这是一个问题还是我可以解决的问题?

【问题讨论】:

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


    【解决方案1】:

    如果我在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...');
        }
    });
    

    所以我不明白为什么这在您的应用程序中不起作用。你用的是什么版本? 尽管您可以像这样在展开事件上使用单个事件处理程序来尝试它:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多