Здравствуйте! я начинающий программист, мне необходимо сделать поиск адресов используюя сервер nominatim. Я хочу чтобы после нажатия на кнопку поиска формировался запрос и результат выводился в виде combobox. Вот мой код:
function Test() {
var userstore;
var searchbutton = Ext.create('Ext.Button', {
text: 'Поиск',
renderTo: Ext.getBody(),
handler: function() {
var me = this;
var find = this.findParentByType("window");
var combo = find.getComponent("ComboBox");
me["adress"] = combo.getValue();
Ext.Ajax.request({
url: 'http://nominatim.t48.ru/nominatim/search.php?q='+me.adress+'&format=json',
method: 'GET',
scope: this,
success: function (response) {
var jsonResp = Ext.JSON.decode(response.responseText);
var convertData = [];
for (var i = 0; i < jsonResp.length; i++)
{
convertData.push( {'display_name':jsonResp[i].display_name ,'lat':jsonResp[i].lat, 'lon':jsonResp[i].lon});
}
userstore = new Ext.create('Ext.data.Store', {
fields: [
"place_id"
,
"display_name"
,
"lat"
,
"lon"
],
data: convertData})
}
});
}
});
var usersCombobox = Ext.create('Ext.form.ComboBox', {
itemId: "ComboBox",
width: 400,
listWidth: 400,
store: userstore,
fieldLabel: 'Адреса',
displayField: 'display_name',
valueField: 'lon',
queryMode: 'remote',
listConfig: {
getInnerTpl: function(){
return '<h>{display_name}</h>' +
'<div class="rate">Координаты: [{lat}] : [{lon}]</div>';
}
}});
console.log("store",userstore);
usersCombobox.bindStore(userstore);
var win = Ext.create("Ext.window.Window", {
width: 500,
height: 500,
maximizable: true,
layout: "hbox",
items: [usersCombobox,searchbutton],
});
win.show();
}
Но так как при создании combobox хранилеще загружается ввиде переменной и динамически не изменяется, как сделать так, чтобы содержимое combobox изменялось каждый раз когда я ищу новый адресс?