0

Ext.TaskManagerでextjsタスクを実行していて、5秒ごとにextストアをリロードします。タスクが呼び出されるたびに、コンボボックスで現在選択されているインデックス(値)を保持するcurrentIndex変数を更新します。私が得る問題は、状況によっては、数値を取得する代わりにcurrentIndexが値[objectObject]を取得することです。なぜこれが起こるのか私には本当にわかりません。これが私のサンプルコードです:

// combo store
var myStore = Ext.create('Ext.data.Store', {
    id: store_id,
    fields: ['label', 'value', 'type'],
    autoLoad: true,
    proxy: {
        type: 'ajax',
        url: '/url/to/controller',
        reader: {
            type: 'json',
            root: 'MyModel'
        }
    }
}),

 createWindow = function() {
    var myComboBox = Ext.create('Ext.form.field.ComboBox', {
        flex: 3,
        editable: false,
        value: 'Select option',
        displayField: 'label',
        valueField: 'value',
        store: myStore,
        cls: 'comboCssClass',
        id: ComboBoxId,
        listeners: {
            'select': function(combo, row, index) {
                var rowData = row[0].data;
                currentIndex = this.getValue();
             }
        }
   };

   return newWindow = Ext.create('Ext.widget.window',{
          // window settings
          items:[myComboBox ]
   });
},

reloadStoretask = {
    run: function(){
          myStore.load();

          // here is where in some cases I get [object Object] instead of number 
          // And I think the object is Ext.data.store.ImplicitModel or it was alike. 
          // so currentIndex = [object Object] in some cases
          record = myStore.getAt(currentIndex).data;
    },
    interval: 5000
}

これを修正する方法または私は何を間違えますか?

4

1 に答える 1

1

ストアを2回ロードしている場合は、autoload:trueを使用してストアを構成してから、reloadStoretask関数を呼び出してストアをリロードします。

于 2014-04-30T16:17:27.723 に答える