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