我设置了typeahead.js版本0.11.1,以从geobytes API中提取城市。这是一个可以做到这一点的codepen:
http://codepen.io/jeremeevans/pen/OVPram
var cities = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace(),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "http://gd.geobytes.com/AutoCompleteCity?callback=?&template=<geobytes%20city>,%20<geobytes%20code>&filter=US&q=%QUERY",
wildcard: "%QUERY",
dataType: "jsonp",
transform: function (response) {
return response;
}
},
limit: 10
});
$("#city").typeahead({
minLength: 3,
highlight: true,
hint: true
}, {
name: "US-Cities",
source: cities
});
我看到的怪异行为是,当我开始键入Seattle时,当我进入“Seat”时,它仅列出了两个结果,即“伊利诺伊州西顿”和“伊利诺伊州西顿维尔”。我知道API还会返回更多结果,包括“华盛顿州西雅图”。另外,如果您开始搜索“Everett”,则所有结果都将落在“Everet”并保持不可见,直到您到达“Everett”,这时显示“Everett,MA”和“Everett,PA”,但不显示“Everett ,WA”。
关于选项和诸如此类的与1.11.1版本相关的文档在https://github.com/twitter/typeahead.js上非常糟糕-我真的很感谢一些关于如何使用此功能的见解,但并没有显示它的结果。
最佳答案
我遇到了某些物品丢失的情况。
我所做的是将typeahead选项限制设置为10。
它对我有用。