extjs创建制作面板表单的类

时间:2013-07-09 21:18:47

标签: forms class extjs

大家好,我是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',但我不想这样做,因为我希望能够通过调用类来制作克隆表单。

1 个答案:

答案 0 :(得分:2)

您正在定义一个类,但永远不会从中创建一个对象:

Ext.onReady(function(){
    var a = new ryan();
});

并且您不必显式调用构造函数方法。

或者使用Ext.create

Ext.onReady(function(){
    var a = Ext.create('ryan');
});