2015-02-09 54 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() 
}); 
相關問題