我已经用Bloodhound设置了我的Twitter Typeahead.js。 Bloodhound使用预先生成的包含常见建议的JSON文件,如果用户未选择任何建议,则它将通过用户查询访问API以生成更多建议。该API不知道JSON文件中已经包含了哪些建议,它只会为您提供与用户查询字符串匹配的任何内容。这意味着对于最常见的建议,用户会两次看到相同的选项-一次从JSON文件中一次看到,而在稍有延迟之后,从API查询中看到同一选项。
我的问题是我如何配置Bloodhound / Typeahead以便省略这些重复项?
var dockets = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace("text"),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: '/static/dockets/dockets.json',
remote: {
url: '/dockets/ajax-search/?query=%QUERY',
wildcard: '%QUERY'
}
});
$('#searchdocketform .typeahead').typeahead(null, {
name: 'docket-search',
display: 'text',
source: dockets
});