6

コントローラーでコンボボックスの値を取得できません。コンボボックス ビューの getter メソッドが返す

function i(){
    return this.constructor.apply(this,arguments)||null
} 

ビュー オブジェクト インスタンスの代わりに。私が使用する場合

var combo=this.getColumnTypeComboView().create()

次に、コンボボックスの選択された値を取得しませんcombo.getValue()

4

1 に答える 1

5

コントローラーでビュー参照を取得するには、Controller クラスのgetView()メソッドを使用するだけです。ビューとコントローラー間の接続を作成するには、ここにある MVC アプリケーション アーキテクチャの原則に従っていることを確認してください。

var view = this.getView('Contact'); //=> getView( name ) : Ext.Base

コンボボックスがコントローラーが担当するビューのアイテムである場合は、コントローラークラスからも制御メソッドを使用します。

Ext.define('My.controller.Contact', {
    extend: 'Ext.app.Controller',
    views: ['Contact'],
    init: function() {

        //reference the view
        var view = this.getView('Contact');

        //reference the combobox change event
        this.control({
            'mywin combobox': {
                 change: this.onChangeContinent
            }
        });

    },
    onChangeContinent:function (field, value, options) {

        //here you can get combobox component and its value
        Ext.Msg.alert('Continent', value);
    }
});

ここにフィドルの例があります

編集:

あるコンポーネントを別のコンポーネントから参照するには、次のように Controller refメソッドを使用できます。

refs: [{
    ref: 'combo',
    selector: 'mywin combobox'
}]

ここにフィドルの例があります2

于 2013-07-04T08:41:01.077 に答える