1

为什么我不能通过方法 SET设置“配置选项”

set({value: 'new value',disabled:true});

我如何为字段设置“属性”

var name = {
    fieldLabel:'Name',
    value: 'Test',
    id:'id-name',
    xtype: 'textfield',
};
this.form= new Ext.FormPanel({
    items:[name],
    buttons: [{
        text   : 'set value',
        handler: function() {
            Ext.getCmp('id-name').set({value: 'new value',disabled:true});
        }]
});
4

1 回答 1

1

使用对象重置组件属性不是 Extjs 设计的一部分。配置用于对象创建,当第一次在构造函数中使用时,使用 Extjs 类系统核心中的特殊方法将其应用于对象本身,以生成 getter 和 setter,然后从它们初始化组件。不可能做你想做的事并得到想要的结果。在上面的示例中,使用您的配置初始化文本字段,在创建期间覆盖组件的默认值,然后它为某些属性生成 getter 和 setter,例如 value、id 和 fieldLabel,这些属性需要在之后使用而不是配置对象组件被创建。要使您的示例正常工作,您需要执行以下操作:

var name = {
    fieldLabel:'Name',
    value: 'Test',
    id:'id-name',
    xtype: 'textfield',
};
this.form= new Ext.FormPanel({
    items:[name],
    buttons: [{
        text   : 'set value',
        handler: function() {
            var myTextField = Ext.getCmp('id-name');
            myTextField.setValue('new value');
            myTextField.setDisabled(true);
        }]
});
于 2012-07-02T18:54:13.467 回答