0

ここにある変更された Twitter Bootstrap typeahead を使用しています。

https://gist.github.com/2935906

以下のコードが機能しない理由がわかりません。testArr を使用すると正常に動作しますが、Google マップ コードから作成した 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
});
4

1 に答える 1

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
});
于 2012-07-24T01:36:19.890 に答える