我在一个非常简单的设置中使用Twitter类型提前。它对服务器进行远程调用,以获取作为json数组的名称和标识符列表,如下所示:
[{"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个用户。
我怀疑问题出在我的血狗基准标记器上,但我不知道该怎么做。这是我的血犬装置。
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没有呈现任何内容。
发布于 2018-05-24 13:08:26
发布于 2018-02-08 08:39:43
您的代码非常好,没有问题。血犬有一个问题的限制设置的猎犬建议。您可以看到问题详细信息这里。
目前我不能说是什么引起了这个问题,因为尝试不同的结果组合,对我来说没有任何意义。
但就目前而言,快速解决方案是将限制设置为20,而且效果很好。希望开发商能尽快解决这个问题。在那之前这是你最好的选择。
return new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 20,
remote: {
url: url + '?term=%QUERY',
wildcard: '%QUERY'
}
});https://stackoverflow.com/questions/48617899
复制相似问题