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 の設計の一部ではありません。config はオブジェクトの作成に使用され、コンストラクターで最初に使用されると、Extjs クラス システム コアの特別なメソッドを使用してオブジェクト自体に適用され、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 に答える