所以我有一个bsic typeahead设置,在那里我搜索城市名称,但是选择我也需要lat和long那个城市,所以我可以把它发送到后端。
$('.typeahead').typeahead({
minLength : 3,
source : function(typeahead,query){
return $.ajax({
url: appUrl+"/"+query,
dataType: 'json',
success: function(data)
{
var obj = $.parseJSON(data);
var locations = [];
$(data).each(function(index,value){
locations.push(value.City);
});
return typeahead.process(locations);
}
});
},
onselect : function(item){
console.log(item);
}
});
所以我从JSon收到lat和long但是我不知道如何将它们存储在源数组中,所以我可以在onselect操作中使用它们,任何提示?
答案 0 :(得分:0)
解决方案是创建另一个存储数据的对象,以便以后可以访问它。
var locationsData = {};
$('.typeahead').typeahead({
minLength : 3,
source : function(typeahead,query){
return $.ajax({
url: appUrl+"/"+query,
dataType: 'json',
success: function(data)
{
var obj = $.parseJSON(data);
var locations = [];
$(data).each(function(index,value){
locations.push(value.City);
locationsData[value.City] = {'Lat' : value.Latitude, 'Long' : value.Longitude};
});
return typeahead.process(locations);
}
});
},
onselect : function(item){
console.log(item);
console.log(locationsData);
console.log(locationsData[item].Lat);
}
});
});