Typeahead.js没有显示异步结果

时间:2016-05-12 09:50:43

标签: javascript typeahead.js

我正在努力在搜索字段中实现typeahead.js,而我遇到的异步结果只会偶尔显示一次,而本地搜索结果总是有效。

我的建议后端返回此JSON数据:

[{
    "query": "anders troelsen",
    "hits": "1197",
    "queryCount": "39"
},
{
    "query": "anders fogh jensen",
    "hits": "295",
    "queryCount": "38"
}]

在代码中我想将上面的JSON转换为字符串数组然后显示它。这是建议代码:

    var localSuggestResults = ["anders and", "anders ladekarl", "anders høg nissen"];

    var searchSuggestions = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.whitespace,
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        local: localSuggestResults,

        remote: {
            url: '/services/suggest?prefix=%QUERY',
            wildcard: '%QUERY',

            transform: function (suggestions) {
                var suggestionArray = suggestions.map(function(suggestion) {
                    return suggestion.query
                });

                return suggestionArray;
            }
        }

    });

    $("#query").typeahead({
        hint: true,
        highlight: true,
        minLength: 1
    },
    {
        source: searchSuggestions
    });

对我做错的任何建议?非常感谢!

1 个答案:

答案 0 :(得分:0)

响应晚了。但是图书馆在此期间没有变化。

在ajax选项中设置{async:true}时,

asyncResult可以工作。将源设置为您自己的从服务器获取结果的函数。