Jquery TwitterTypeahead-重复AJAX建议

Jquery TwitterTypeahead-重复AJAX建议,jquery,twitter-typeahead,Jquery,Twitter Typeahead,我可以毫无问题地使用旧版本的Twitter Typeahead,我对新版本的了解肯定是有限的,我对为什么会出现重复条目感到困惑 这是我的Javascript: // Sources var sources = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), queryTokenizer: Bloodhound.tokenizers.whitespace, pref

我可以毫无问题地使用旧版本的Twitter Typeahead,我对新版本的了解肯定是有限的,我对为什么会出现重复条目感到困惑

这是我的Javascript:

// Sources
var sources = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    prefetch: '/sources/prefetch/',
    remote: '/sources/prefetch/'
});

sources.initialize();

$('#a_sources_list').typeahead(null, {
  name: 'sources',
  displayKey: 'name',
  source: sources.ttAdapter()
})
/sources/prefetch/返回:

[{"id":"1","name":"Google"},{"id":"3","name":"Yahoo"}]

下面是正在发生的情况的屏幕截图:

问题在于从同一个源调用了
预取
远程

此处详细介绍了该问题:

基本上,猎犬有一个默认限制。如果建议的数量低于该限制,它将调用远程URL

有一个创建重复检测器的选项:

您可以使用此选项确保同一项目不会出现两次

下面是dupDetector的一个示例:


问题在于
预取
远程
都是从同一个源调用的

此处详细介绍了该问题:

基本上,猎犬有一个默认限制。如果建议的数量低于该限制,它将调用远程URL

有一个创建重复检测器的选项:

您可以使用此选项确保同一项目不会出现两次

下面是dupDetector的一个示例:


如果我用local而不是prefetch或remote初始化我的侦探实例,我的dupDetector会被调用吗?我不确定,我会放一个console.log并找到答案。谢谢你的建议。我认为问题在于我没有使用远程或预取。如果我用local而不是prefetch或remote初始化我的侦探实例,我的dupDetector会被调用吗?我不确定,我会放一个console.log并找到答案。谢谢你的建议。我认为问题在于我没有使用远程或预取。
dupDetector: function(remoteMatch, localMatch) {
    return remoteMatch.id === localMatch.id;
}