我在initComponent()
中创建了一些项目
问题是,this.items
以某种方式引用类变量,而不是实例变量。
所以当我制作两个实例时,我最终得到了两个按钮。
items: [],
initComponent: function() {
this.items.push( { xtype: 'button', ... }) ;
this.callParent( arguments );
}
因为每次推入新元素时都必须使用push。
是否有一些等同于this.items
的实例,我可以在创建按钮之前修改定义,还是必须手动检查重复项?
答案 0 :(得分:7)
你不应该return this.callParent( arguments );
这就够了:
initComponent: function() {
var me = this;
me.items = { xtype: 'button', ... }; //Are you sure items is filled up here?
me.callParent();
}
此外,如果您正在编写自己的“组件”并且想要在Ext.create
中传递参数,我总是执行以下操作:
constructor: function (config) {
var me = this;
Ext.apply(me, config);
me.callParent();
}
这将使用您在Ext.create()
答案 1 :(得分:1)
你可以重载构造函数并在那里调整配置:
constructor: function(config)
{
config.items.someButton = { xtype: 'button', ... };
this.callParent([config]);
}