Typeahead.js / Bloodhound 只显示一个结果
Typeahead.js / Bloodhound display just one result
我的 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
{
"data": {
"query": "los",
"count": 4,
"results": {
"1": {
"term": "Losanna"
},
"2": {
"term": "Losone"
},
"3": {
"term": "Lostallo"
},
"4": {
"term": "Lostorf"
}
}
}
}
你看错了吗?谢谢!
这是为了确认此问题是由此类型错误引起的:https://github.com/twitter/typeahead.js/issues/1218
正如 joekur 在问题报告中所建议的那样,我解决了替换这个问题:
rendered += suggestions.length;
that._append(query, suggestions.slice(0, that.limit - rendered));
有了这个:
suggestions = suggestions.slice(0, that.limit - rendered);
rendered += suggestions.length;
that._append(query, suggestions);
我将我自己的问题标记为与此重复: 这是同样的问题,只是由于措辞不同我之前找不到它
HTH.
我的 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
{
"data": {
"query": "los",
"count": 4,
"results": {
"1": {
"term": "Losanna"
},
"2": {
"term": "Losone"
},
"3": {
"term": "Lostallo"
},
"4": {
"term": "Lostorf"
}
}
}
}
你看错了吗?谢谢!
这是为了确认此问题是由此类型错误引起的:https://github.com/twitter/typeahead.js/issues/1218
正如 joekur 在问题报告中所建议的那样,我解决了替换这个问题:
rendered += suggestions.length;
that._append(query, suggestions.slice(0, that.limit - rendered));
有了这个:
suggestions = suggestions.slice(0, that.limit - rendered);
rendered += suggestions.length;
that._append(query, suggestions);
我将我自己的问题标记为与此重复:
HTH.