我有一些课
AddOrgWindowUI = Ext.extend(Ext.Window, {
title: 'form',
width: 400,
height: 198,
layout: 'form',
padding: 5,
initComponent: function() {
this.items = [
{
xtype: 'textfield',
fieldLabel: 'parapapa',
anchor: '95%',
value: m,
emptyText: 'perapapa'
}
];
AddOrgWindowUI.superclass.initComponent.call(this);
}});
当我创建一个对象var AddOrgWindowForm = new AddOrgWindowUI('aaa');
时,我希望得到arg('aaa')到我的新表单值(值m)。怎么弄明白?
我正在尝试initComponent: function(m) {
而那不起作用。
答案 0 :(得分:7)
在initComponent
的一个基类上内部调用Ext.Window
函数。你不应该试着直接调用它。这就是为什么它不会处理你自己的参数。
因此,我建议您在extending ExtJS classes时使用标准表单参数。
就像使用要覆盖的属性初始化对象一样简单(或者在属性不存在的情况下插入)。然后只需使用this
关键字即可访问它们。
这是可能的,因为对于每个Ext.Component
及其子类,传递给构造函数的第一个参数应该是一个对象,并且该对象中的每个成员都将被复制到构造的新对象中。大多数ExtJS类直接或间接地从Ext.Component
扩展,并且您从Ext.Window
扩展而来自Ext.Component
。
在这里你修复了你的例子:
var AddOrgWindowUI = Ext.extend(Ext.Window, {
title: 'form',
width: 400,
height: 198,
layout: 'form',
padding: 5,
initComponent: function() {
this.items = [
{
xtype: 'textfield',
fieldLabel: 'parapapa',
anchor: '95%',
value: this.initialValue,
emptyText: 'perapapa'
}
];
AddOrgWindowUI.superclass.initComponent.call(this);
}
});
function test() {
var AddOrgWindowForm = new AddOrgWindowUI({initialValue:'aaa'});
AddOrgWindowForm.show();
}
答案 1 :(得分:0)
将m作为initComponent的参数传递:
编辑:
AddOrgWindowUI = function(input) {
var m = input;
return Ext.extend(Ext.Window, {
title: 'form',
width: 400,
height: 198,
layout: 'form',
padding: 5,
initComponent: function() {
this.items = [
{
xtype: 'textfield',
fieldLabel: 'parapapa',
anchor: '95%',
value: m,
emptyText: 'perapapa'
}
];
AddOrgWindowUI.superclass.initComponent.call(this);
}
});
}