Получить предложения 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 здесь и примеры здесь.

Другие вопросы по тегам