我正在使用此处找到的修改后的Twitter Bootstrap typeahead。
https://gist.github.com/2935906
我无法理解为什么下面的代码不起作用。如果我使用testArr它工作正常,但是一旦我返回我从某些Google Maps代码创建的resultsArr就失败了。 console.log(resultsArr)显示一切都很好。想法?
var testArr=new Array("One","Two","Three");
$('#map-query').typeahead({
source: function(typeahead, query) {
var resultsArr = new Array();
geocoder.geocode({ 'address': query }, function (results, status) {
for(i=0; i < results.length; i++) {
if(results[i].formatted_address) {
resultsArr[i] = results[i].formatted_address;
}
}
console.log(resultsArr);
return resultsArr;
});
},
items: 10
});
答案 0 :(得分:0)
我终于弄明白了。由于请求未完成,返回无效。我也可以在这里找到我用过的主要补丁。我不确定这是否是最好的方法,所以欢迎提出改进建议。
https://gist.github.com/1866577
$('#map-query').typeahead({
source: function(typeahead, query) {
var resultsArr = new Array();
geocoder.geocode({ 'address': query }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
for(i=0; i < results.length; i++) {
if(results[i].formatted_address) {
resultsArr[i] = results[i].formatted_address;
}
}
typeahead.process(resultsArr);
}
});
},
items: 10
});