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
}
これを修正する方法または私は何を間違えますか?