我设置了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。
它对我有用。

07-26 03:47