Jquery TwitterTypeahead-重复AJAX建议
我可以毫无问题地使用旧版本的Twitter Typeahead,我对新版本的了解肯定是有限的,我对为什么会出现重复条目感到困惑 这是我的Javascript: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
// 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;
}