我一直遇到这个问题。我有一个定义了'items'的自定义组件。我希望有人使用我的组件,但定义一些配置值,(即我想要一个构建器用于我的小部件!)。
假设我有这样的组件。我希望通过'someArgumentPassedInAsConfig'传递一个参数,并且我希望在项目树中的某些项目对象上设置此参数。
Ext.define('MySuperDupeyComponent', {
extend: 'Ext.panel.Panel',
alias: 'widget.MySuperDupeyComponent',
initComponent: function() {
alert('ch --> ' + this.someArgumentPassedInAsConfig);
},
items: [{
xtype: 'someWidget',
somePropertyIwantToSet: this.someArgumentPassedInAsConfig
}]
})
最好的方法是什么?我希望有人能够像我这样使用我的组件。
items: [
{
xtype: 'MySuperDupeyComponent',
someArgumentPassedInAsConfig: 'Blah blah blah'
}
是构造函数中使用Ext.apply的唯一方法吗?
答案 0 :(得分:3)
如果这是您正在寻找的内容,则声明initComponent方法中的项目应该有效。
Ext.define('MySuperDupeyComponent', {
extend: 'Ext.panel.Panel',
alias: 'widget.MySuperDupeyComponent',
initComponent: function() {
alert('ch --> ' + this.someArgumentPassedInAsConfig);
this.items = [{
xtype: 'someWidget',
somePropertyIwantToSet: this.someArgumentPassedInAsConfig
}]
this.callParents(arguments);
}
})
应该允许你像这样使用它
Ext.create('Ext.panel.Panel', {
items: [{
xtype: 'MySuperDupeyComponent',
someArgumentPassedInAsConfig: 'Blah...'
}]
});