Получить предложения Bloodhound Typeahead без раскрывающегося списка
Я могу получить все предложения Twitter Typeahead с приведенным ниже кодом после того, как пользователь вводит данные и вызывается typeahead:render. Я бы хотел все время скрывать выпадающий список и получать предложения только в виде массива. Есть ли способ добиться этого, так как typeahead:render, вероятно, потребует открытия раскрывающегося списка.
var bloodhoundData = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: localData
});
$('filter .typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
source: bloodhoundData,
limit: 99999
}).on('typeahead:render', getSuggestions);
function getSuggestions() {
var suggestions = Array.prototype.slice.call(arguments, 1);
}
1 ответ
Решение
Поскольку Bloodhound.js является отдельной библиотекой, вам не нужно использовать typeahead с ней. Вы можете привязать ввод для bloodhound к обычному вводу текста и проверить результат метода get.
Нечто подобное может работать, с q
являясь текстом ввода (заимствованным из примера команд НФЛ):
var myBloodhound = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
identify: function(obj) { return obj.name; },
local: localData
});
function getMyData(q, sync) {
myBloodhound.search(q, sync);
}
Вы можете проверить документацию Bloodhound здесь и примеры здесь.