我正在努力在搜索字段中实现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
});
对我做错的任何建议?非常感谢!
答案 0 :(得分:0)
响应晚了。但是图书馆在此期间没有变化。
在ajax选项中设置{async:true}
时,asyncResult可以工作。将源设置为您自己的从服务器获取结果的函数。