无需打开下拉菜单即可获取 Twitter Bloodhound Typeahead 建议

Get Twitter Bloodhound Typeahead suggestions without opening dropdown

在用户输入内容并调用 typeahead:render 后,我可以使用以下代码获取所有 Twitter Typeahead 建议。我想一直隐藏下拉菜单,只在数组中获取建议。有没有办法实现这一点,因为 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);
        }

由于 Bloodhound.js 是一个独立的库,您不必对它使用提前输入。您可以将 bloodhound 的输入与普通文本输入相关联,然后检查 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);
}

您可以查看 bloodhound documentation here and the examples here