2011-12-13 152 views
2

在下面的代码中,如果我将activeTab设置为0,则/ viewer/welcome的内容按预期显示。如果我将activeTab设置为1(如下所示),第二个选项卡会在加载时激活,但是当我点击第一个选项卡时,内容不会显示。我可以看到它加载标签的内容之前,我点击标签(如果我设置autoLoad:false,它根本不加载它),但即使它加载,它不会显示。extjs标签内容将不会显示

{ 
    xtype: 'tabpanel', 
    activeTab: 1, 
    items: [ 
     { 
      xtype: 'panel', 
      loader: { 
       url: '/viewer/welcome/', 
       renderer: 'html', 
       autoLoad: true 
      }, 
      layout: { 
       type: 'fit' 
      }, 
      title: 'Welcome' 
     }, 
        ... 
     } 

为什么在选项卡被激活时,选项卡的内容实际上不会显示?如果该选项卡是加载时的活动选项卡,为什么它能正常工作,但是如果该选项卡在其他情况下被激活,则无法工

如果我进行这些更改,文本会按预期显示所有时间,但我会从spurious activate调用中获得额外的页面加载。

{ 
    xtype: 'tabpanel', 
    activeTab: 1, 
    items: [ 
     { 
      xtype: 'panel', 
      loader: { 
       url: '/viewer/welcome/', 
       renderer: 'html', 
       autoLoad: false 
      }, 
      layout: { 
       type: 'fit' 
      }, 
      title: 'Welcome', 
      listeners: { 
       activate: function(me, opts) { 
        me.getLoader().load(); 
       } 
      } 
     }, 
        ... 
     } 

我只是不理解为什么标签不管理这些内容作为是一个拉环部分.....

+0

这是一个很好的问题。我在Tabs中没有遇到Grid Panels的这个问题。这与预期一致。它必须与加载程序配置有关,我以前从未使用它。目前运行的是哪个版本?这可能存在一个错误。 – dbrin 2011-12-14 00:55:21

+0

4.07(我刚刚开始使用它,大多数其他所有的行为都像预期的那样,所以是的,也许它只是一个错误)。我相当确信,在第一次激活发生时,双重激活是一个错误。 – boatcoder 2011-12-14 03:42:36

回答

1

我认为这里的问题是你有什么指示 - 该选项卡不管理内容。他们没有正确管理它的原因是从加载器返回的HTML内容就是这样 - 一些HTML,它不是ExtJS组件。 ExtJS“应该”管理已加载的内容是有争议的,但文档暗示相反:http://docs.sencha.com/ext-js/4-0/#!/api/Ext.Component-cfg-html对此提出错误可能是值得的。

此外,我注意到你在欢迎面板上指定了合适的布局。由于该面板中没有包含其他项目,因此您可能不需要该设置 - 顺便说一句,它可能(或可能不)改进加载的html片段的处理方式。

祝你好运。

0

我发现在ExtJS 5.1中使用参考名称没有工作。不得不放在一个项目Id