[英]how to get args to constructor at extjs?
我上課
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) {
而那是行不通的。
在Ext.Window
的基類之一上內部調用initComponent
函數。 您不應該嘗試直接調用它。 這就是為什么它不會處理您自己的參數的原因。
因此,我建議您在擴展ExtJS類時使用標准格式參數。
就像使用要覆蓋的屬性或方法初始化對象一樣簡單(或在屬性不存在的情況下插入)。 然后只需使用this
關鍵字即可訪問它們。
這是可能的,因為對於每個Ext.Component
及其子類,傳遞給構造函數的第一個參數應該是一個對象,並且該對象中的每個成員都將被復制到構造的新對象中。 大多數ExtJS類都直接或間接地從Ext.Component
擴展,而您也從Ext.Window
擴展,而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();
}
將m作為initComponent的arg傳遞:
編輯:
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);
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.