2012-05-02 3 views
1

Я пытаюсь добавить пользовательские компоненты в контейнер ExtJS4. Однако при попытке добавить элементы в контейнер в методе onRender, я получаю сообщение об ошибке:extjs4 - Добавление пользовательских компонентов в контейнер

«Невозможно прочитать свойство» layoutBusy «неопределенного» из doLayout в AbstractContainer. Свойство 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); 
    } 
}); 

Я попытался добавить компоненты, используя свойство конфигурации элемента контейнера, и он работает. Однако я не уверен, как передать пользовательские параметры компоненту (необходимо передать экземпляры модели компоненту).

Спасибо за любую помощь.

ответ

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' 
}); 

(подходит макет не является хорошим выбором, если у вас есть еще один компонент)

+0

Это поставило меня в правильном направлении. Благодарю. –