我使用Typeahead / Bloodhoud进行公司搜索,自动完成部分没有显示足够的匹配。
----------搜索----------
我应该看到至少5个结果,因为限制是5。
---------- Ajax响应----------
Typeahead JS
companies = new Bloodhound({
datumTokenizer: function(d) {
return Bloodhound.tokenizers.nonword(d.id);
},
queryTokenizer: Bloodhound.tokenizers.nonword,
remote: 'access/companies?q=%QUERY'
});
companies.initialize();
$('#companySearch').typeahead({
highlight: true,
source: companies.ttAdapter(),
updater: selectCompany
});
如何确保我的所有结果都按预期显示?我一直在挖掘文档/源代码,寻找我必须忽略的选项,并且一直在努力想出任何选择。
答案 0 :(得分:1)
在这种情况下,我只想使用typeahead作为我的bootstrap样式自动完成菜单。这意味着我不想让我的JS为匹配结果做任何逻辑。这是一个未记录的(在本文发布时)配置设置,您可以使用名为matcher
的设置,它允许您自定义预先过滤器结果的方式。我只是覆盖了它,以便它返回每一个结果。
$('#companySearch').typeahead({
highlight: true,
minLength: 1,
source: companies.ttAdapter(),
updater: selectCompany,
matcher: function (t) {
return t;
}
});
答案 1 :(得分:0)
您需要添加一个' displayKey'在预先打电话中。
Displaykey应该是' name'在你的情况下。
像这样:
// instantiate the typeahead UI
$( '#companySearch').typeahead(null, {
displayKey: 'name',
source: companies.ttAdapter()
});