gpt4 book ai didi

javascript - Bloodhound:Twitter Typeahead 没有显示从远程/ajax 获取的所有结果

转载 作者:行者123 更新时间:2023-11-29 11:00:08 24 4
gpt4 key购买 nike

我在一个非常简单的设置中使用 Twitter Typeahead。它对服务器进行远程调用以获取名称和标识符列表作为 json 数组,如下所示:

[{"value":"Declan Strosin","data":"b2c9d118-2e7a-4516-bc50-5505cbfcc834"},{"value":"Jany Legros","data":"d8b53d8c-d952-4fed-bc22-5932094abca1"}]

问题是有时 Typeahead 会呈现所有匹配的选项,但有时它只会显示几个。它决定呈现的内容似乎没有任何韵律或理由。

例如,我可能会输入“and”,然后从服务器接收到一个包含 10 个用户的列表,这些用户的名字如“Sandy Blogs”、“Andrew Blogs”、“John Sanderson”等,它会列出所有 10 个用户.正确的 3 个字母也突出显示。

然而,对于其他搜索,“ros”、“dan”等,它可能会拉回 10 个用户,但只会呈现两三个。

我怀疑问题出在我的 Bloodhound 数据分词器上,但我真的不知道该怎么办。这是我的 Bloodhound 设置。

    return new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: url + '?term=%QUERY',
wildcard: '%QUERY'
}
});

我读过这篇文章,https://github.com/twitter/typeahead.js/blob/master/doc/migration/0.10.0.md#tokenization-methods-must-be-provided , 但我仍然一无所知。

编辑:我现在遇到过从服务器拉回 10 个或更多条目,但 Typeahead 没有呈现任何内容的情况。

最佳答案

您的代码似乎没有问题。您可以尝试以下操作:

  • 使用更新/维护的版本:原来的 Typeahead 自 3 年多以来没有收到任何更新( checkout github )。但是有一个积极维护的 fork . (截至 2018 年)

  • 使用Identify():您在设置Bloodhound 时似乎没有设置identify() 选项。根据official documentation ,建议使用它,以便您的数据始终是唯一的。

  • 最后,交叉检查:引用引用中的教程以确保您没有遗漏任何内容。

引用:<强> Typeahead Tutorial @Digital Fortress

关于javascript - Bloodhound:Twitter Typeahead 没有显示从远程/ajax 获取的所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48617899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com