extJS:通过JS在字段上设置'config options'

时间:2012-07-02 14:41:22

标签: javascript json extjs4 extjs

为什么我无法通过methode 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});
        }]
});

1 个答案:

答案 0 :(得分:1)

使用对象重置组件属性不是Extjs设计的一部分。配置用于对象创建,并且在构造函数中首次使用时,使用Extjs类系统核心中的特殊方法将其应用于对象本身,以生成getter和setter,然后从中初始化组件。不可能做你想做的事情并获得理想的结果。在上面的示例中,textfield初始化时,配置会在创建过程中覆盖组件的默认值,然后为某些属性生成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);
        }]
});