首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bloodhound: Twitter Typeahead没有显示从remote/ajax获取的所有结果

Bloodhound: Twitter Typeahead没有显示从remote/ajax获取的所有结果
EN

Stack Overflow用户
提问于 2018-02-05 07:48:01
回答 2查看 1.6K关注 0票数 4

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

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

问题是,有时预先输入会呈现所有匹配选项,但其他时候只会显示几个选项。似乎没有任何押韵或理由,它决定渲染。

例如,我可以键入" and ",并从服务器上接收到10个名为“Sanderson”、"Andrew“、”“等名称的用户的列表,它将列出所有10个用户。正确的3个字母也被高亮显示。

然而,对于其他搜索,"ros“、"dan”等等,它可能会使10个用户后退,但只呈现2或3个用户。

我怀疑问题出在我的血狗基准标记器上,但我不知道该怎么做。这是我的血犬装置。

代码语言:javascript
复制
    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没有呈现任何内容。

EN

回答 2

Stack Overflow用户

发布于 2018-05-24 13:08:26

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

  • 使用更近期/维护的版本:最初的NOT已经收到了3+年份以来的任何更新(结帐github)。但是有一个积极维护的分叉。(截至2018年)
  • 使用标识():在设置血犬时,似乎没有设置identify()选项。根据正式文件,建议使用它,以便您的数据始终是唯一的。
  • 最后,参考中包含教程的cross-check:,以确保您没有遗漏任何东西。

参考资料:打字机教程@数字堡垒

票数 4
EN

Stack Overflow用户

发布于 2018-02-08 08:39:43

您的代码非常好,没有问题。血犬有一个问题的限制设置的猎犬建议。您可以看到问题详细信息这里

目前我不能说是什么引起了这个问题,因为尝试不同的结果组合,对我来说没有任何意义。

但就目前而言,快速解决方案是将限制设置为20,而且效果很好。希望开发商能尽快解决这个问题。在那之前这是你最好的选择。

代码语言:javascript
复制
return new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    limit: 20,
    remote: {
        url: url + '?term=%QUERY',
        wildcard: '%QUERY'
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48617899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档