我正在尝试将自定义组件添加到ExtJS4容器中。但是,当尝试在onRender方法中向容器添加项目时,我收到错误:
'无法从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);
}
});
我尝试使用容器的项配置属性添加组件,它可以正常工作。但是,我不确定如何将自定义参数传递给组件(需要将模型实例传递给组件)。
感谢您的帮助。
答案 0 :(得分: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'
});
(如果你有更多的组件,合适的布局不是一个好的选择)