Получите предложения Twitter 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);
        }

person jj123456    schedule 04.03.2016    source источник


Ответы (1)


Поскольку Bloodhound.js является автономной библиотекой, вам не нужно использовать с ней ввод текста. Вы можете связать ввод для ищейки с обычным текстовым вводом и изучить результат метода get.

Что-то вроде этого может сработать, где q будет текстом из ввода (заимствовано из примера NFL Teams):

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);
}

Вы можете ознакомиться с документацией по ищейке здесь и примеры здесь.

person whipdancer    schedule 05.03.2016
comment
Спасибо за вашу помощь! Это работает, хотя в итоге я просто использовал substringMatcher в ссылке, как это часто делает Bloodhound. t возвращает правильные результаты (см. ссылку). - person jj123456; 07.03.2016