2012-05-02 61 views
1

我試圖將自定義組件添加到ExtJS4容器。但是,嘗試在onRender方法中將項添加到容器時,我收到錯誤:extjs4 - 向容器添加自定義組件

'無法從AbstractContainer中的doLayout讀取屬性'layoutBusy'undefined'。 componentLayout屬性未定義。

Ext.define('App.view.dashboard.RightContainer', { 
    extend: 'Ext.container.Container', 
    uses: [ 
     'App.view.Component1', 
     'App.view.Component2' 
    ], 

    alias: 'widget.dashboardright', 
    layout: 'fit', 
    border: 0, 

    onRender: function() { 

     var self = this; 
     self.callParent(arguments); 

     var component1 = Ext.create('App.view.Component1', { 
      height: '300px', 
      flex: 1, 
      incidents: self.dashboard.get('incidents') 
     }); 

     var component2 = Ext.create('App.view.Component2', { 
      flex: 1, 
      contact: self.dashboard.get('contacts') 
     }); 

     self.add(component1); 
     self.add(component2); 
    } 
}); 

我試過使用容器的item配置屬性添加組件,它的工作原理。但是,我不確定如何將自定義參數傳遞給組件(需要將模型實例傳遞給組件)。

感謝您的任何幫助。

回答

1

有一個看看這個例子:http://jsfiddle.net/ChE59/

我加入3塊板的容器並傳遞一些自定義屬性。

Ext.define('App.view.dashboard.RightContainer', { 
    extend: 'Ext.container.Container', 
    alias: 'widget.dashboardright', 


    border: 0, 

    constructor: function(config){ 
     Ext.apply(this, { 
      items: [ 
       { 
        title: 'panel 1' 
       }, 
       { 
        title: 'panel 2' 
       }, 
       { 
        title: config.customParameter 
       } 
      ]  
     }); 

     this.callParent(arguments);   
    } 
}); 


Ext.widget('dashboardright', { 
    renderTo: Ext.getBody(), 
    customParameter: 'custom parameter' 
}); 

(FIT佈局不,如果你有更多的一個部件一個不錯的選擇)

+0

這讓我在正確的方向。謝謝。 –