我的Typeahead.js / Bloodhound (0.11.1)没有按预期工作。在提供的长列表json结果中,只有一些显示为建议。
例如,如果我在字段中键入los
,我只得到Lostorf
,没有其他任何东西,而应该显示4个可选择的项目。
这是我的代码:
HTML
<div id="remote">
<input class="typeahead" type="text">
</div>
JS
var searchablePlaces = new Bloodhound({
datumTokenizer : Bloodhound.tokenizers.obj.whitespace("term"),
queryTokenizer : Bloodhound.tokenizers.whitespace,
remote : {
url : 'http://www.example.com/autocomplete/%QUERY/',
wildcard : '%QUERY',
filter : function(response) { return response.data.results; }
},
limit : 10
});
searchablePlaces.initialize();
$('#remote .typeahead').typeahead(
{
hint : true,
highlight : true,
minLength : 2
},
{
name : 'searchable-places',
displayKey : "term",
source : searchablePlaces.ttAdapter()
})
Json
:JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON 是基于 JavaScript 的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。{
"data": {
"query": "los",
"count": 4,
"results": {
"1": {
"term": "Losanna"
},
"2": {
"term": "Losone"
},
"3": {
"term": "Lostallo"
},
"4": {
"term": "Lostorf"
}
}
}
}
你看到有什么不对的地方吗?谢谢!