1

我有一个代码,我在其中创建了一个组件。单击应用时,我想保存此表单字段对象并可供 getter 使用。这样父容器就可以读取它。

我还想要所有字段获取器/设置器,以便可以更新值运行时。如何做到这一点?

Ext.define('MyApp.view.MyForm', {
    extend: 'Ext.form.Panel',

    height: 463,
    width: 227,
    bodyPadding: 10,
    title: 'My Form',

    initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            items: [
                {
                    xtype: 'textfield',
                    fieldLabel: 'Component Name',
                    anchor: '100%'
                },
                {
                    xtype: 'textfield',
                    fieldLabel: 'Host',
                    anchor: '100%'
                },
                {
                    xtype: 'textfield',
                    fieldLabel: 'Port',
                    anchor: '100%'
                },
                {
                    xtype: 'textfield',
                    fieldLabel: 'Path',
                    anchor: '100%'
                },
                {
                    xtype: 'textareafield',
                    fieldLabel: 'Request Data',
                    anchor: '100%'
                },
                {
                    xtype: 'button',
                    text: 'Apply',
                    listeners: {
                        click: {
                            fn: me.onButtonClick,
                            scope: me
                        }
                    }
                }
            ]
        });

        me.callParent(arguments);
    },
        onButtonClick: function(button, e, options) {
                   var form = this.getForm(),
            values = form.getFieldValues(),
                    //make this available to public
            json = Ext.JSON.encode(values);
            console.log(json);


    }

});
4

2 回答 2

3

为了实现这一点,需要在 config 中定义所有变量:{} extjs 会自动创建 getter/setter。

然后您可以使用 this.getVar()、this.setVar() 来引用它

我希望这对初学者有帮助。

于 2012-07-26T03:26:05.120 回答
3

有关详细信息,请参阅http://docs.sencha.com/ext-js/4-0/#!/guide/class_system上的配置部分

于 2012-10-11T19:30:21.333 回答