Я пытаюсь заставить Typeahead добавить автозаполнение из моего источника JSON, но результаты не добавляются.
Некоторая справочная информация: у меня есть Sinatra, обслуживающая страницу JSON, которая принимает параметр запроса, вот код:
get '/search' do
content_type :json
Movie.search(params[:q], {
fields: ["title^5"],
limit: 10,
load: false
}).map(&:title).to_json
end
и это работает; вот например результат.
/search?q=toy%20story
возвращает:
["Toy Story"]
Мой ввод HTML выглядит так:
<input id="search-box" type="text" value="" placeholder="Search for Movie Title" class="form-control" name="search">
и мой JS:
$(function() {
$('#search-box').typeahead({
highlight: true,
limit: 10
},
{
display: 'movie',
source: function(query, syncResults, asyncResults) {
$.get('/search?q=' + encodeURIComponent(query), function(data) {
asyncResults(data);
console.log(data);
});
}
}
})
Результаты отображаются в console.log
по мере того, как я печатаю, и добавляются объекты HTML Typeahead, но в них ничего нет, и они скрыты.
Кто-нибудь может помочь? Я застрял на этом весь день.