2011-12-13 149 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