2014-12-03 89 views
1

我想從Extjs容器中刪除Extra div。我的視圖中有很多容器,但我不想在容器中添加兩個額外的div。這兩個div每次都在容器中生成,所以我在應用bootstrap時會遇到一些問題。如何刪除容器中的自動生成的Div文件ExtJs

這兩個DIV包含data-ref="innerCt"data-ref="outerCt"

謝謝

+3

不要刪除它們,它們是框架需要的尺寸。 – 2014-12-03 10:30:03

+1

但有什麼辦法可以刪除? @Evan – GoalDone 2014-12-03 10:35:00

回答

3

此標記取決於佈局。例如,fit不會顯示額外的div,但它一次只能顯示一個組件。您可以通過定義自定義佈局來實現類似行爲。例如:

Ext.define('Ext.layout.container.Null', { 
    alias: ['layout.null', 'layout.nullcontainer'], 
    extend: 'Ext.layout.container.Container', 
    type: 'nullcontainer', 

    reserveScrollbar: false, 
    managePadding: false, 
    manageOverflow: false, 
    needsItemSize: false, 
    setsItemSize: false, 

    renderTpl: [ 
     '{%this.renderBody(out,values)%}' 
    ] 
}); 

小提琴:http://jsfiddle.net/bzm1s8ye/2/

+0

downvote的原因:Ext佈局*非常*複雜,不應該混淆,除非絕對必要。這是一個不好的建議。 – 2014-12-04 23:06:20

+1

@AlexTokarev你說的只是荒謬的 - 複雜性是一個相對的概念。即使它很複雜,沒有人會說這很容易。此外,我不會混淆版面,我已經通過擴展基本版本創建了新的版本,並默認了一些版本。你可以通過使用'layout:'container''來配置它。問題是這個額外的div可以做些什麼 - 並且回答問題到底可以做些什麼。我不知道用其他方式來做這件事 - 如果你這樣做,你可以提供你自己的答案。 – Krzysztof 2014-12-05 07:27:56

+2

此外,繼承是面向對象的主要概念之一,AFAIK這個框架是爲了OOP,我所做的最好的是繼承。自從Ext JS 3開始,我一直在使用自定義佈局,而且我發現它比其他Ext JS代碼更復雜。 最後,當您禁用或限制一個佈局系統時,將ExtJS與bootstrap(具有其自己的佈局系統)混合可能會更容易發生,所以像'nulllayout'這樣的東西實際上可能成爲使這兩個框架一起工作的最簡單方式。 – Krzysztof 2014-12-05 07:28:19

1

在審查的源代碼6.0.2,相信只需要設置爲layout: 'container'您不想要的額外佈局的div容器上。在Krzysztof的答案中提到的所有其他屬性僅在Ext.layout.container.Auto上定義,Ext.layout.container.Auto是Ext.layout.container.Container的子類,因此不需要包含它們。