大家好,我是extjs的新手,也是javascript的新手。我尝试着。我想要做的是有一个类,其方法使面板形式具有各种属性,我希望能够在我想要调用myclass.makepanel时创建克隆面板表单。我为什么要那样做?我只是在学习不同的东西并熟悉extjs,我不是在尝试完成任何具体的事情,这是我目前的代码
Ext.define('ryan', {
constructor: function () {
Ext.create('Ext.form.Panel', {
bodyStyle: {
"background-color": "green"
},
name: 'mypanel',
title: 'Animal sanctuary, one animal per location ',
width: 300,
bodyPadding: 10,
test: 'mycat',
style: 'background-color: #Fdd;',
renderTo: Ext.getBody(),
items: [{
id: 'button1',
xtype: 'button',
text: 'click the button',
handler: function () {
alert('(<^_^>)')
}
}, {
id: 'wildAnimal',
xtype: 'textfield',
fieldLabel: 'animal:',
name: 'myanimal'
}, { //end text field
id: 'myCombo',
xtype: 'combo',
fieldLabel: 'choose your animal',
store: animals,
queryMode: 'local',
displayField: 'name',
listeners: {
'change': function (field, selectedValue) {
Ext.getCmp('wildAnimal').setValue(selectedValue);
}
}
} // end combo
], //end items
}); // end .create
} // end ffunc
}); //end ryan
var animals = Ext.create('Ext.data.Store', {
fields: ['id', 'name'],
data: [{
"id": 'mycat',
"name": "mycat"
}, {
'id': 'mydog',
"name": "mydog"
}, {
'id': 'sbBarGirls',
"name": "BarGirls-when-drunk"
}]
}); //end animals.create // up to here no problems
Ext.onReady(ryan.constructor()); // can't actually display the panel.
我很抱歉格式没有直接从我的文本编辑器中复制。所以,如果我的代码难以阅读,我可以再次发布。我可以将所有内容放在.onReady中,而不是尝试定义'ryan',但我不想这样做,因为我希望能够通过调用类来制作克隆表单。
答案 0 :(得分:2)
您正在定义一个类,但永远不会从中创建一个对象:
Ext.onReady(function(){
var a = new ryan();
});
并且您不必显式调用构造函数方法。
或者使用Ext.create:
Ext.onReady(function(){
var a = Ext.create('ryan');
});