2017-02-03 8 views
0

Я пытаюсь заполнить список автозаполнения бутстрапа (Typeahead) с данными, предоставленными внешним веб-сервисом, в данном случае «Wunderground Weather», но он не работает.Autocomplete Typeahead AJAX

Это ошибка в возвращении «hasOwnProperty».

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

<!-- Latest compiled and minified JavaScript --> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 

<script src="bootstrap-typeahead.js"></script> 

HTML

<div class="col-md-12"> 
    <h1>Search Dynamic Autocomplete using Bootstrap Typeahead JS</h1> 
    <input class="typeahead form-control" type="text"> 
</div> 

JQuery

$(".typeahead").typeahead({ 
    source: function (query,process) { 
       return process(autoCompleteWunderGround(query)) 
      } 
}); 


function autoCompleteWunderGround(query){ 
    var results = [] 
    $.ajax({ 
     url : "http://autocomplete.wunderground.com/aq?query=query", 
     dataType : "jsonp", 
     jsonp : "cb", 
     data : { 
     "query" : query, 
     "format" : "JSON", 
     }, 
     success : function(data) { 
      $.each(data.RESULTS, function(index, value){ 
       results.push(value.name) 
      }) 
     } 
    }); 

    return results; 

} 

Благодаря

ответ

0

Я думаю, что проблема заключается в возвращении функции autoCompleteWunderGround(). Ajax является асинхронным, поэтому возврат функции выполняется до успеха. Результат массива никогда не заполняется. Вы можете попробовать с функцией обратного вызова.

+1

Что вы имеете в виду? Можете ли вы привести пример? благодаря –

 Смежные вопросы

  • Нет связанных вопросов^_^