2015-02-09 66 views
2

我正在使用Typeahead/Bloodhoud进行公司搜索,并且自动填充部分未显示足够的匹配项。无法查看与Typeahead/Bloodhound的所有匹配结果

---------- ----------搜索

enter image description here

我看到至少5分的结果,因为限制为5

---------- Ajax响应----------

enter image description here

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

您使用的是最新版本的Typeahead?我认为它不再需要更新选项? – joeljoeljoel 2015-02-10 16:31:21

+0

@joeljoeljoel我相信如此... v0.10.5 updater选项按照我的预期工作。 – Webnet 2015-02-10 19:52:06

回答

1

在这种情况下,我只是想用预输入我的自举风格自动完成菜单。这意味着我不想让我的JS去做任何类型的逻辑来匹配结果。有一个未公开的(在这篇文章发布时)配置设置,您可以使用调用matcher,它允许您自定义typeahead过滤器结果的方式。我简单地覆盖它,以便它返回每一个结果。

$('#companySearch').typeahead({ 
    highlight: true, 
    minLength: 1, 
    source: companies.ttAdapter(), 
    updater: selectCompany, 
    matcher: function (t) { 
     return t; 
    } 
}); 
0

您需要在typeahead调用中添加'displayKey'。
Displaykey在你的情况下应该是'name'。
事情是这样的:

// instantiate the typeahead UI 
$('#companySearch').typeahead(null, { 
    displayKey: 'name', 
    source: companies.ttAdapter() 
}); 
相关问题