Twitter Bootstrap typeahead除了返回的数组外没有

时间:2012-07-23 05:08:50

标签: twitter-bootstrap

我正在使用此处找到的修改后的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
});

1 个答案:

答案 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
});