У меня есть combobox, значения которого мне нужно заполнить через форматированную строку json, которую я получаю с помощью вызова AJAX.Значения не добавляются в combobox динамически
Вот строка, которую я извлеченного (хранится в data
)
{
"a2m":
[
"a2mMeeting",
"sugar"
]
}
Поле со списком должен содержать a2m
(это единственное имя в строке, как сейчас)
Вот что я был пытаясь:
подход 1:
this.initAjaxCall = Ext.Ajax.request({
url : 'indigo/restproxy/get/v1/applications/list',
method:'GET',
scope : this,
success : function(result, request) {
var data = Ext.decode(result.responseText);
Object.keys(data).forEach(function(key) {
console.log(key);
Ext.getCmp('appCombo').getStore().add({appName : key});
})
}
});
this.appcombo = Ext.create('Ext.form.field.ComboBox', {
id : 'appCombo',
store: this.appStore
});
this.appStore = Ext.create('Ext.data.Store', {
fields : [
{
name : 'appName',
type : 'string'
}
]
});
подход 2:
this.appStore = Ext.create('Ext.data.Store', {
fields: ['appName'],
proxy: {
type: 'ajax',
url: 'indigo/restproxy/get/v1/applications/list',
method : 'GET'
},
listeners: {
load: function(store, records, successful, eOpts) {
store.insert(0, {
'appName' : 'yellow' //Trying to populate randomly using this method.
})
}
}
})
this.appcombo = Ext.create('Ext.form.field.ComboBox', {
id : 'appCombo',
store: this.appStore
});
В обоих случаях выпадающий не загружает никакого значения, и я не в состоянии видеть любое значение в раскрывающемся меню.
EDIT 1: Когда я напечатал store.getCount() в консоли после добавления одного элемента, значение отображается как 1 (отмечено добавлением двух элементов, и оно показывает 2). Это означает, что значения добавляются в хранилище, но не отображаются в выпадающем меню combobox. Просьба предложить, как это решить.
РЕШЕНИЕ:
Решение, как выясняется, был, добавив заявление queryMode: «местный». Я не понимаю, почему это создавало проблему. Любой, кто хочет пролить свет на это, может это сделать.
Спасибо за помощь Алан. Я уже добавил это и попытался, но снова это не сработало. В любом случае проблема теперь решена путем добавления queryMode: «local». Я не знаю, почему это создавалось и выдавалось, хотя –
@ aayush_v20 Не уверен, зачем именно ему нужно установить queryMode. Мне не нужно добавлять его с вашим подходом 2 только к первому, поэтому я предполагаю, что он имеет какое-то отношение к тому, как вы загружаете данные в хранилище. –